AutoCAD : Calque 0

c_orieux
Enthusiast

AutoCAD : Calque 0

c_orieux
Enthusiast
Enthusiast

Es t'il possible de convertir tout les calques en 0 en une seule fois ?

0 J'aime
Répondre
Solutions acceptées (3)
1 512 Visites
30 Réponses
Replies (30)

c_orieux
Enthusiast
Enthusiast

Cette macro fonctionne très bien

Néanmoins j'ai remarqué que les calques dans les espaces papiers ne sont pas pris en compte.

Avons nous le moyen de lancer la macro pour l'espace objet et papier avec toutes les présentations ?

 

0 J'aime

Caderix
Mentor
Mentor

Je n'ai pas trouvé de variables pour les lignes de repère multiple.


Cordialement

Eric GUELEN
Formateur AutoCAD
Site Internet

EESignature

0 J'aime

c_orieux
Enthusiast
Enthusiast

^C^C-pl;ch;0;;rb;setbylayermode;221;_ai_selall;-setbylayer;o;o;chprop;_all;;_la;0;;-purger;tout;*;n;_audit;o;_qsave;;

 

Voila on j'en suis pour le traitement des fichiers venant de l'extérieur.

Je n'ai pas encore résolu le problème des cotes en DuCalque et les calques dans les présentations

0 J'aime

Y.AUBRY
Advisor
Advisor

@Caderix 

Salut Eric, peut-être en passant par les expressions DIESEL dans la macro?

 

J'avoue que je n'ai pas trop de temps en ce moment donc si tu es d'attaque je te laisse voir.

 

En tout cas j'en profites pour vous souhaiter de bonnes fêtes de fin d'années un peu en avance 🎅🤶🎄

 

A+ Yoan

 

 

Yoan AUBRY

EESignature

0 J'aime

Caderix
Mentor
Mentor

Je ne vois pas comment !


Cordialement

Eric GUELEN
Formateur AutoCAD
Site Internet

EESignature

0 J'aime

c_orieux
Enthusiast
Enthusiast

Bonne fêtes à tous

Merci pour votre contribution

Cela va déjà beaucoup m'aider

Je continue à chercher

0 J'aime

c_orieux
Enthusiast
Enthusiast

J'ai trouvé une lisp réalisée par Gile pour changer les couleurs des styles de cotes

0 J'aime

c_orieux
Enthusiast
Enthusiast

reste les lignes multiples à placer sur Dubloc

0 J'aime

Y.AUBRY
Advisor
Advisor

Bonjour,

 

Tu trouveras ci-dessous un lisp de @Kent1Cooper pour passer toutes les cotations, lignes de repères et lignes de repère multiples en DuCalque (Commande "ABL") ou en DuBloc (Commande "ABB")

(Ce lisp a été modifié par la suite apparemment, la commande ACB d'origine n'existe plus)

 

;;  AllColorBylayer.lsp [command name: ACB]
;;  To change the Color of ALL entities in the drawing, including those nested in
;;    Block definitions [but not Xrefs] and Dimension/Leader parts, to ByLayer.
;;  Kent Cooper, 27 February 2014, expanding on some elements by p_mcknight

(vl-load-com)
(defun C:abl ; = All to Color Bylayer
 (/ cb ent obj blk subent)
 (defun cb () ; = force Color(s) to Bylayer
   (setq obj (vlax-ename->vla-object ent))
   (vla-put-color obj 256); ByLayer
   (if (wcmatch (vla-get-ObjectName obj) "*Dimension,*Leader")
     (foreach prop '(DimensionLineColor ExtensionLineColor TextColor)
       ;; not all such entity types have all 3 properties, but all have at least one
       (if (vlax-property-available-p obj prop)
         (vlax-put obj prop 256); ByLayer
       ); if
     ); foreach
   ); if
 ); defun -- cb
;;  Top-level entities:
 (setq ent (entnext))
 (while ent
   (cb)
   (setq ent (entnext ent))
 ); while
;;  Nested entities in this drawing's Block definitions:
 (setq blk (tblnext "block" t))
 (while blk
   (if (= (logand 20 (cdr (assoc 70 blk))) 0); not an Xref [4] or Xref-dependent [16]
     (progn
       (setq ent (cdr (assoc -2 blk)))
       (while ent
         (cb)
         (setq ent (entnext ent))
       ); while
     ); progn
   ); if
   (setq blk (tblnext "block"))
 ); while
 (command "_.regenall")
 (princ)
); defun

(vl-load-com)
(defun C:abb ; = All to Color ByBlock
 (/ cb ent obj blk subent)
 (defun cb () ; = force Color(s) to Bylayer
   (setq obj (vlax-ename->vla-object ent))
   (vla-put-color obj 0); ByBlock
   (if (wcmatch (vla-get-ObjectName obj) "*Dimension,*Leader")
     (foreach prop '(DimensionLineColor ExtensionLineColor TextColor)
       ;; not all such entity types have all 3 properties, but all have at least one
       (if (vlax-property-available-p obj prop)
         (vlax-put obj prop 0); ByVlock
       ); if
     ); foreach
   ); if
 ); defun -- cb
;;  Top-level entities:
 (setq ent (entnext))
 (while ent
   (cb)
   (setq ent (entnext ent))
 ); while
;;  Nested entities in this drawing's Block definitions:
 (setq blk (tblnext "block" t))
 (while blk
   (if (= (logand 20 (cdr (assoc 70 blk))) 0); not an Xref [4] or Xref-dependent [16]
     (progn
       (setq ent (cdr (assoc -2 blk)))
       (while ent
         (cb)
         (setq ent (entnext ent))
       ); while
     ); progn
   ); if
   (setq blk (tblnext "block"))
 ); while
 (command "_.regenall")
 (princ)
); defun

 

 

ou sinon voir celui-ci (Auteur inconnu)

 

 

(defun All2BL (/ colorObj) ;Sets everything to by layer including leaders
	(vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
		(vlax-for obj block
			(cond 
				((wcmatch (vla-get-objectname obj) "AcDb*Dimension,AcDbLeader")
					(foreach prop '(Color DimensionLineColor ExtensionLineColor TextColor)
						(vl-catch-all-apply 'vlax-put-property (list obj prop acbylayer))
					)
				)
				((wcmatch (vla-get-objectname obj) "AcDbMLeader")
					(setq colorObj (vlax-get-property obj 'LeaderLineColor))
					(vla-put-ColorMethod colorObj 192)
					(vlax-put-property obj 'LeaderLineColor colorObj)
					(vl-catch-all-apply 'vla-put-color (list obj acbylayer))
				)
				(T
					(vl-catch-all-apply 'vla-put-color (list obj acbylayer))
				)
			)
		)
	)
	(print "Everything has been set to by layer!")
	(princ)
)

 

 

Faire quelques tests en remplaçant le Colorobj 192 en 256 (correspondant à Ducalque) et acbylayer en acbyblock pour voir ce qui te correspond le mieux.

 

A+ Yoan

Yoan AUBRY

EESignature

0 J'aime

c_orieux
Enthusiast
Enthusiast

La première Lisp fonctionne uniquement sur la cotation mais pas les lignes de repères.

La deuxième Lisp n'a pas d'effet.

0 J'aime

c_orieux
Enthusiast
Enthusiast
Ligne de repère multiple
0 J'aime