Aller au contenu

Lisp impression espace Objet


paulo43

Messages recommandés

Bonjour à tous,

J'ai un lisp pour imprimer en PDF des mises en pages dans l'espace Objet.

Il faut imaginer plein de cadre composés de 4 lignes qui font 420 x 297 avec à l'intérieur de ces cadre des dessins de ferraillage. Ces cadres sont dans un calque "Feuille _A4".

 

Je dessine tout dans l'espace objet.

Le truc c'est que je n'arrive pas à faire fonctionner ce lisp dans l'espace papier, j'ai changé d'entreprise et ici on décompose la structure dans des onglets de présentation.

Un onglets avec tout les Linteaux, un onglet avec toutes les poutres....

Ci joint le Lisp:

;fonction de tracer des feuillets d'armatures

(defun c:imp ()

 

;; Load visual lisp, activex support

(vl-load-com)

 

;jeu d selection

(setq p1 0

p2 0

p3 0

p4 0

p5 0

p6 0

p7 0

p8 0)

(setq selc 0)

(setq selc (ssget '((0 . "LINE") (8 . "FEUILLE_A4")))

nb (sslength selc)

n 0)

;lecture de la liste des objets

(while (< n nb)

(setq ent1 (ssname selc n)

li1 (entget ent1)

p1 (cdr (assoc 10 li1))

p2 (cdr (assoc 11 li1))

di1 (fix (distance p2 P1))

)

(if (= di1 420)

(progn

(setq n1 0)

(setq selc (ssdel ent1 selc)

nb (- nb 1))

(while (< n1 nb)

(setq ent2 (ssname selc n1)

li2 (entget ent2)

p3 (cdr (assoc 10 li2))

p4 (cdr (assoc 11 li2))

di2 (fix (distance p4 p3))

)

(if (and (= di2 297) (or (and (= (car p3) (car p1))(= (cadr p3) (cadr p1)))

(and (= (car p1) (car p4))(= (cadr p1) (cadr p4)))

(and (= (car p2) (car p3))(= (cadr p3) (cadr p2)))

(and (= (car p2) (car p4))(= (cadr p2) (cadr p4)))

)

)

(progn

(setq selc (ssdel ent2 selc)

nb (- nb 1))

(setq n2 0)

(while (< n2 nb)

(setq ent3 (ssname selc n2)

li3 (entget ent3)

p5 (cdr (assoc 10 li3))

p6 (cdr (assoc 11 li3))

di3 (fix (distance p6 p5))

)

(if (and (= di3 420) (or (and (= (car p3) (car p5))(= (cadr p3) (cadr p5)))

(and (= (car p5) (car p4))(= (cadr p5) (cadr p4)))

(and (= (car p6) (car p3))(= (cadr p3) (cadr p6)))

(and (= (car p6) (car p4))(= (cadr p6) (cadr p4)))

)

)

(progn

(setq selc (ssdel ent3 selc)

nb (- nb 1))

(setq n3 0)

(while (< n3 nb)

(setq ent4 (ssname selc n3)

li4 (entget ent4)

p7 (cdr (assoc 10 li4))

p8 (cdr (assoc 11 li4))

di4 (fix (distance p8 p7))

)

(if (and (= di4 297) (or (and (= (car p7) (car p5))(= (cadr p7) (cadr p5)))

(and (= (car p5) (car p8))(= (cadr p5) (cadr p8)))

(and (= (car p6) (car p7))(= (cadr p7) (cadr p6)))

(and (= (car p6) (car p8))(= (cadr p6) (cadr p8)))

)

)

;recupére les points et imprime

(progn

(setq selc (ssdel ent4 selc)

nb (- nb 1))

(if (= (cadr p1) (cadr p6))

(if (= (car p1) (car p6))

(if (< (car p1) (car p6))

(if (< (cadr p1) (cadr p6))

(setq liste (list p1 p6))

(setq liste (list p6 p1)))

(setq liste (list p6 p1))))

(if (< (car p1) (car p5))

(if (< (cadr p1) (cadr p5))

(setq liste (list p1 p5))

(setq liste (list p5 p1)))

(setq liste (list p5 p1))))

(command "-traceur"

"o" ;détaillé

"Objet" ;présentation objet

"adobe pdf" ;imprimante

"A4" ;format

"m" ;unité de dessin

"A" ;paysage

"n" ;pas synétrie

"f" ;fenetre de tracer

(car liste)

(cadr liste) ;points de la fenetre

"p" ;pleine page

"c" ;centré

"o" ;avec style de tracé

"ACAD" ;nom du style

"o" ;sans épaisseur

"a" "n" "o" "o")

)

 

(progn

(setq n3 (+ 1 n3))

)

)

)

)

(setq n2 (+ 1 n2))

)

)

)

(setq n1 (+ 1 n1))

)

)

)

(setq n (+ 1 n))

)

)

)

 

Merci pour votre aide

Paulo

 

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

En fait, il y a plusieurs pages dans chaque onglets.L'onglet nommé "01" avec 4 pages à l’intérieur par exemple.

 

J'ai toujours utilisé "publier", mais dans ma nouvelle boîte ils bossent comme ça, c'est pas pratique mais je dois faire avec. Alors je cherche un truc pour m'aider, car imprimer chaque pages une par une c'est vraiment chronophage.

Bonne journée

Paulo

 

 

 

 

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é