Aller au contenu

1 ligne pour chacun des calques


Zeberb

Messages recommandés

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,

Lien vers le commentaire
Partager sur d’autres sites

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)
)
 )

Lien vers le commentaire
Partager sur d’autres sites

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,

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Allez ! c'est un jour de bonté, je suis tellement gentil que j'en oublie que je suis mégalo (hihi)

 

Pour ranger dans l'ordre croissant la liste des calques il faut que tu modifies la ligne 4 par celle-ci :

(setq calq (vl-sort (reverse calq) '<))

 

Amicalement

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

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é