Aller au contenu

impression de plusieurs plans dans le meme fichiers


rezut71

Messages recommandés

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

 

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 ?

 

 

Lien vers le commentaire
Partager sur d’autres sites

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 !

Lien vers le commentaire
Partager sur d’autres sites

  • 6 mois après...

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

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
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]

Lien vers le commentaire
Partager sur d’autres sites

  • 10 mois après...

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

 

Lien vers le commentaire
Partager sur d’autres sites

 

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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é