Aller au contenu

impression de plusieurs plans dans le meme fichiers


Messages recommandés

Posté(e)

bonjour

j'utilise autocad 2005 a mon travail mais faute de formation je ne sais pas imprimer des plans multiple sous un meme fichier (suis asser clair )

merci de m'aider

(je travaille dans une societé qui construit des armoire electrique et certain client envoi ce type de fichiers avec tous leurs plans en cascade .j'usqua present j'utulisais la fonction imprimer fenetre mais si possibilitée de faire plus facilement (ce fichier contient 98 plans a imprimer donc tres long a traiter par la fonction fenetre)

 

merci

 

 

Posté(e)

Salut

 

Un truc vite fait en partant sur la config de base de l'imprimante.

 

Les folios partent du coin bas gauche puis vers la droite.

 

Ne pas oublier de redéfinir la variable nom_fplan pour rechercher le bon fond de plan des folios.

 

(defun c:impr(/ 2d-point doc nom_fplan bl bg hd lst res lay plt)

 (defun 2d-point (pt)
   (vlax-make-variant
     (vlax-safearray-fill
(vlax-make-safearray vlax-vbdouble '(0 . 1))
(list (car pt) (cadr pt))
     )
   )
 )

 (setq doc (vla-get-activedocument (vlax-get-acad-object))
nom_fplan "[b][surligneur]FOND_DE_PLAN[/surligneur][/b]"
 )
 (and (ssget "x" (list (cons 0 "insert") (cons 2 nom_fplan)))
   (progn
     (vlax-for bl (setq sel (vla-get-activeselectionset doc))
(vla-getboundingbox bl 'bg 'hd)
(setq lst (cons (list (vlax-safearray->list bg) (vlax-safearray->list hd)) lst))
     )
     (vla-delete sel)
     (setq res (vl-sort lst '(lambda (a b) (< (caadr a) (caadr b))))
    res (vl-sort res '(lambda (a b) (< (cadadr a) (cadadr b))))
    lay (vla-get-activelayout doc)
    plt (vla-get-plot doc)
     )
     (foreach fen res
(vla-put-plottype lay acwindow)
(vlax-invoke-method lay 'setwindowtoplot (2d-point (trans (car fen) 0 3)) (2d-point (trans (cadr fen) 0 3)))
(vlax-invoke plt 'plottodevice)
     )
   )
 )
 (princ)
)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

heu la je suis larguer

je suis completement novice en autocad et je connais encore moins les scipts

de plus les vues sont sur plusieurs niveaux (23 et pas le meme nombre de vues par niveau)

je ne sais pas attacher une image sinon je l'aurais fait pour vous aider a mieux me comprendre

Posté(e)

C'est un lisp que je t'ai donné.

 

Pour le lancer, (gile) a fournit une excellente explication

 

Tu n'as rien à faire, sauf donner le nom du bloc qui sert de fond de plan à tes folios.

Le lisp de charge de les rechercher, de les trier dans l'ordre puis de faire une impression fenêtre de chaque folio.

Donc que tu sois sur 3 lignes/4 colonnes par exemple n'a aucune importance.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Bjr à tous,

 

Ne fonctionne pas chez moi V2007

malgré que le bloc soit renseigné ...

 

Commande: impr

; erreur: Erreur Automation Entrée incorrecte

 

 

Posté(e)

 

Hello

 

Ce programme utilise des fonctions VLA donc il faudrait peut être un

 

( VL-LOAD-COM )

 

en début de programme !?

 

Le Decapode

 

Autodesk Expert Elite Team

Posté(e)

merci patrick_35 pour tes réponses mais je doit être nul ou oublier quelque chose car rien ne se passe et j'ai ce message d'erreur ( erreur: no function definition: VLAX-GET-ACAD-OBJECT)

j'ai changer "FOND_DE_PLAN" par "ijt_a3" (nom du bloc que je retrouve dans chaque folio)

il n'y a rien d'autre a changer dans ton fichier ?

mon fichier est enregistrer sur le bureau y a t'il une importance?

sur la fiche de gile (merci a lui) il parle de fichiers AutoCAD.lsp et acaddoc.lsp (ils ne sont pas présent sur ma config) c'est des dossiers a creer pour placer les lsp ?

 

je suis absolument débutant en ce qui concerne tous ce qui est programmation merci de ne pas m'en tenir rigueur

 

si tu pouvais me détailler mot a mot ce qu'il faut faire

merci

 

 

Posté(e)

Re

 

erreur: no function definition: VLAX-GET-ACAD-OBJECT

J'ai encore oublié le (vl-load-com)

Tu l'ajoutes en début de lisp.

 

j'ai changer "FOND_DE_PLAN" par "ijt_a3" (nom du bloc que je retrouve dans chaque folio)

C'est exactement ce qu'il fallait faire.

 

il n'y a rien d'autre a changer dans ton fichier ?

Non, sauf si tu veux faire joujou avec les paramètres d'impression.

 

mon fichier est enregistrer sur le bureau y a t'il une importance?

Du moment que tu le charges.

 

il parle de fichiers AutoCAD.lsp et acaddoc.lsp

C'est pour automatiser le chargement des lisps.

On verra plus tard.

 

je suis absolument débutant en ce qui concerne tous ce qui est programmation merci de ne pas m'en tenir rigueur

Mais on ne te demandes pas de savoir, mais juste d'utiliser.

Si tu veux programmer, on se fera un plaisir de t'aider

 

si tu pouvais me détailler mot a mot ce qu'il faut faire

Il me semblait être assez claire, mais bon.

 

Tu paramètres une mise en page (avec _pagesetup par exemple) pour définir ton imprimante, tes couleurs. etc...

 

Tu charges le lisp et tu tapes sur la ligne de commande impr et l'impression de tous les folios doit se faire.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

j'ai encore un soucis j'ai lancer une premiere fois le lisp mais vu qu'il n'y avait pas de mise en page de defini j'ai ce message d'erreur (Travail: - Erreur(s) N'a pas pu être tracé

 

 

ID du travail: 2

Nom du jeu de feuilles:

Date et heure de début: 06/05/2009 13:43:45

Date et heure de fin: 06/05/2009 13:43:45

ID utilisateur: ------

ID de profil: Autocad

Nombre total de feuilles: 0

Feuilles tracées: 0

Nombre d'erreurs: 0

Nombre d'avertissements: 0

 

Erreur: Une erreur grave s'est produite lors du traitement de votre requête.

j'ai donc importer une mise en page standard (dans le gestionnaire de mise en page) j'ai cliquer sur (definir courant) j'ai relancer impr et la j'ai un autre message (; erreur: Erreur Automation Entrée incorrecte)

la mise en page ne correspond pas ? ou ai je fait une boulette ?

 

 

Posté(e)

Le plus simple est de me donner un exemple, même avec avec des folios vierges afin que je détermine si ça vient du lisp ou d'une mauvaise manip.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

merci patrick

c'etait laborieux mais j'ai reussi

il fallait juste non pas importer une mise en page mais modifier l'existante et la c'est imprimer nickel

 

encore merci et bonne fin de journée

Posté(e)

Re,

 

C'est bon pour moi aussi ...

Je n'avais pas immédiatement saisi le but du Lisp, donc je m'y prenais mal. :cool:

 

En même temps je n'étais pas le demandeur, alors pas de problème !

 

Chapeau tout de même à nos maitres Lispeurs, qui comprennent illico les demandes

pas toujours claires, voire obscures de certains !

Rien que la question me laisse parfois comme 2 ronds de flan,

Un 6ème sens peut être ... :o ah comme j'aimerais avoir votre vivacité d'esprit

et votre clairvoyance ... Quand je serais grand peut être !

  • 6 mois après...
Posté(e)

bonjour,

 

deja je voulais remercié encore une fois patrick pour son super lisp

 

et je voulais savoir une chose

 

peut on faire la mise a jour du nom du cartouche par une selection

 

je m'explique:

 

j'utilise ton lisp pour imprimer mes plans

 

mais suivant les clients les noms differts a chaque fois donc je dois rentrer dans le lisp pour le modifier (se qui n'es pas non plus compliquer vu que j'y arrive)

 

donc je voulais savoir si on ne pouvait pas faire l'acquisition de nom par une selection dans le plans

 

merci d'avance

 

 

et encore merci pour tous

  • 1 mois après...
Posté(e)
Salut

 

Un truc vite fait en partant sur la config de base de l'imprimante.

 

Les folios partent du coin bas gauche puis vers la droite.

 

Ne pas oublier de redéfinir la variable nom_fplan pour rechercher le bon fond de plan des folios.

 

(defun c:impr(/ 2d-point doc nom_fplan bl bg hd lst res lay plt)

 (defun 2d-point (pt)
   (vlax-make-variant
     (vlax-safearray-fill
(vlax-make-safearray vlax-vbdouble '(0 . 1))
(list (car pt) (cadr pt))
     )
   )
 )

 (setq doc (vla-get-activedocument (vlax-get-acad-object))
nom_fplan "[b][surligneur]FOND_DE_PLAN[/surligneur][/b]"
 )
 (and (ssget "x" (list (cons 0 "insert") (cons 2 nom_fplan)))
   (progn
     (vlax-for bl (setq sel (vla-get-activeselectionset doc))
(vla-getboundingbox bl 'bg 'hd)
(setq lst (cons (list (vlax-safearray->list bg) (vlax-safearray->list hd)) lst))
     )
     (vla-delete sel)
     (setq res (vl-sort lst '(lambda (a b) (< (caadr a) (caadr b))))
    res (vl-sort res '(lambda (a b) (< (cadadr a) (cadadr b))))
    lay (vla-get-activelayout doc)
    plt (vla-get-plot doc)
     )
     (foreach fen res
(vla-put-plottype lay acwindow)
(vlax-invoke-method lay 'setwindowtoplot (2d-point (trans (car fen) 0 3)) (2d-point (trans (cadr fen) 0 3)))
(vlax-invoke plt 'plottodevice)
     )
   )
 )
 (princ)
)

 

@+

 

 

je voulais savoir si il etait possible de commencer par le coin en haut a gauche?????

 

merci d'avance

 

[Edité le 6/1/2010 par stephane69100]

Posté(e)

Salut

 

Tu remplaces

res (vl-sort res '(lambda (a b) (< (cadadr a) (cadadr b))))

par

res (vl-sort res '(lambda (a b) ([b][surligneur]>[/surligneur][/b] (cadadr a) (cadadr b))))

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

  • 10 mois après...
Posté(e)

bonjour,

 

je me permet de déterrer ce post vieux d un an car le lisp utilisé m intéresse grandement.

 

En effet, j ai souvent des series de cartouches à imprimer.

 

je pensais donc créer un bloc "CARTOUCHE" avec des attributs, etc...

 

le bloc serait ensuite copier le nombre de fois nécessaire, puis on change les titres etc...

 

ensuite on utilise le lisp ce dessus, pour tous les imprimer d'un coup, et ainsi eviter de ressaisir à chaque fois la fenetre.

 

Donc j ai fait tout ca, mais au moment d utiliser le lisp, il ne m imprime que le premier cartouche, pas les suivants.

 

petite precision, j ai essayé en espace papier d'abord, puis en espace objet, et l erreur est la meme dans les deux cas.

 

voila le message d 'erreur :

 

Commande: IMPR

Régénération du modèle.

; erreur: Une exception s'est produite

 

 

je vous remercie d avance de l'attention que vous aurez porté à mon probleme.

 

Vous felicitant encore pour le travail effectué.

 

Cordialement

 

Fred

 

Posté(e)

 

Bin en gros, j ai créer un bloc cartouche taille A4

 

je l ai copier plusieurs fois

 

et je voulais savoir pourquoi le lisp ne me les imprimais pas tous à la suite.

 

Car le but de ce lisp c est bien de definir la fenetre d impression selon un bloc et de les imprimer a la suite?

 

je peux vous envoyer le fichier si il faut, pas de probleme.

 

en esperant que je suis assez clair....

 

A+

 

Fred

Posté(e)
et je voulais savoir pourquoi le lisp ne me les imprimais pas tous à la suite.

Moi aussi.

Car le but de ce lisp c est bien de definir la fenetre d impression selon un bloc et de les imprimer a la suite?

Oui.

je peux vous envoyer le fichier si il faut, pas de probleme.

C'était l'objet de ma demande en réponse n°21, pour comprendre ce qui peut bloquer.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité