Aller au contenu

1 ligne pour chacun des calques


Messages recommandés

Posté(e)

Bonjour à tous

 

Je cherche à dessiner, l'une en dessous de l'autre, une ligne pour chacun des calques de mon DWG (comme lorsque l'on crée une légende). Qq'un a t'il déjà vu une routine capable de cela? merci

Posté(e)

Bonjour,

 

A mon grand avis ceci pourrait être amélioré mais je pense que ça pourrait t'aider à faire ce que tu souhaite.

 

(vl-load-com)
(defun c:LLINE (/ ACADDOC bY eY ePoint bPoint)
 (setq ACADDOC (vla-get-activedocument (vlax-get-acad-object)))
 (setq bY 0.0
eY 0.0
       bPoint (list 0.0 bY 0.0)
ePoint (list 50.0 eY 0.0)
 )


 (vlax-for temp (vla-get-layers ACADDOC)
   (vla-put-activelayer ACADDOC temp)
   (vl-cmdf "_LINE" bPoint ePoint "")
   (setq bY (+ bY 2.0)
   	  eY (+ eY 2.0)
   	  bPoint (list 0.0 bY 0.0)
  ePoint (list 50.0 eY 0.0))
 )
)

 

Cordialement,

Posté(e)

Coucou

 

En AutoLisp : idem, c'est simplifiable et ajustable mais c'est un bon squelette de code

Si tu veux apprendre évite le copier-coller et regarde l'aide de chaque commande...

 

(setq calq (list (cdr (assoc 2 (tblnext "LAYER" T)))))
(while (setq tempo (tblnext "LAYER"))
     	(setq calq (append (list (cdr (assoc 2 tempo))) calq)))
(setq calq (reverse calq))
(setq ydep 0 n 0)

(repeat (length calq)
 (setq calquedessin (cons 8 (nth n calq))
pdep (cons 10 (list 0 ydep 0))
pfin (cons 11 (list 50 ydep 0))
texdeb (cons 10 (list 50 ydep 0))

tex (cons 1 (strcat "Calque : " (cdr calquedessin)))
 	)
  	
(entmake (list (cons 0 "LINE") 
  			(cons 6 "BYLAYER")
  			calquedessin	
  			pdep		
  			pfin		
  			(cons 39 0.0)
  			(cons 62 256)
  			(cons 210 (list 0.0 0.0 1.0)))
  		)

 (entmake (list (cons 0 "TEXT") 
  			tex
  			(cons 6 "BYLAYER")
  			(cons 7 "STANDARD") 
  			calquedessin
  			texdeb
  			pfin
  			(cons 39 0.0)
  			(cons 40 1.0) 
  			(cons 41 1.0)
  			(cons 50 0.0)
  			(cons 51 0.0)
  			(cons 62 256)
  			(cons 71 0)
  			(cons 72 0)
  			(cons 73 0)
  			(cons 210 (list 0.0 0.0 1.0)))
  	)
	
 (setq n (+ 1 n)
ydep (+ 10 ydep)
)
 )

Posté(e)

Je vous remercie chaleureusement.

J'ai tellement rarement besoin de routines LISP qu'il m'est difficile de trouver le temps et l'intérêt d'apprendre. Mais je comprends. C'est vraiment pratique.

Posté(e)

Bonjour,

 

Pour les avoir en ordre alphabétique, je me permet de reprendre le lisp de Didier, il te suffit de changer en début de lisp

(setq calq (reverse calq))

par

(setq calq (acad_strlsort calq))

 

Avec celui que je t'ai envoyé, je ne saurais pas dire comment mettre en ordre alphabétique, il faut que je fasse des recherches ^^

 

Cordialement,

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é