Aller au contenu

Connaitre si un calque est imprimable


Messages recommandés

Salut,

Tu peux savoir si un calque est imprimable avec le groupe DXF 290 ou la propriété IsPlottable (1 = imprimable, 0 = non-imprimable).

((lambda (/ layer name lst)
   (while (setq layer (tblnext "layer" (not layer)))
     (setq name	(cdr (assoc 2 layer))
	   lst	(cons
		  (cons	name
			(cdr (assoc 290 (entget (tblobjname "layer" name))))
		  )
		  lst
		)
     )
   )
   (reverse lst)
 )
)

 

((lambda (/ layer name lst)
   (while (setq layer (tblnext "layer" (not layer)))
     (setq name	(cdr (assoc 2 layer))
	   lst	(cons
		  (cons	name
			(getpropertyvalue (tblobjname "layer" name) "IsPlottable")
		  )
		  lst
		)
     )
   )
   (reverse lst)
 )
)

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Coucou,
Par simple complémentarité avec la réponse de (gile), tu peux également utiliser le Visual LISP avec la propriété "Plottable" :

((lambda (/ layers layer lst)
  (setq layers (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))))
  (vlax-for layer layers
    (setq lst
      (cons
        (cons (vlax-get layer "Name") (vlax-get layer "Plottable"))
        lst
      )
    )
  )
  (reverse lst)
))

Dans ce 1er cas de figure tu obtiendras un résultat du genre :

(("0" . -1) ("Calque1" . -1) ("Calque2" . 0))

Avec :

Citation

Plottable = -1  → Calque imprimable
Plottable = 0   → Calque non imprimable

Tu peux également utiliser la forme contractée des fonctions (vlax-get), mais attention car le résultat est différent du premier :

((lambda (/ layers layer lst)
  (setq layers (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))))
  (vlax-for layer layers
    (setq lst
      (cons
        (cons (vla-get-Name layer) (vla-get-Plottable layer))
        lst
      )
    )
  )
  (reverse lst)
))

Dans ce 2nd cas de figure tu auras plutôt ce résultat :

(("0" . :vlax-true) ("Calque1" . :vlax-true) ("Calque2" . :vlax-false))

Soit :

Citation

Plottable = :vlax-true  → Calque imprimable
Plottable = :vlax-false → Calque non imprimable

Donc cela ne change rien pour le nom des calques évidemment mais en revanche, les résultats imprimable/non imprimable est impacté 🙂

Bisous,
Luna

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é