jim78b
Guest
Ich habe diese Liste, um die Farbe zu den geschachtelten Blöcken zu ändern, die ich machen müsste, dass Sie mehr als ein Objekt dank und perfavore auswählen können. .
(defun c:blcc () (pl:block-color) (princ)
(defun c:encc () (pl:block-ent-color) (princ)
;;get von alaspher http://forum.dwg.ru/showthread.php?t=1036;; http://forum.dwg.ru/showpost.php?p=166220&postcount=18(vl-load-com)
(defun pl:block-ent-color (/ adoc Blöcke Farbe ent legt)
(setq adoc (vla-get-activedocument (vlax-get-acad-objekt))
Laien (vla-get-layers adoc)
Farbe (acad_colordlg 256)
)
(wenn Farbe
(progn (setvar "errno) 0)
(vla-startundomark adoc)
(nicht (vl-catch-all-error-p)
(setq ent (vl-catch-all-apply)
(Funktion Nentsel)
'('\nselect Entity <exit>:")
)
)
)
)
(/= 52 (getvar "errno")
)
(falls ent
(progn (setq ent (vlax-ename->vla-object (car ent))
Laien (vla-item Laien (vla-get-layer ent))
)
(wenn (= (vla-get-lock lay) :vlax-true)
(progn (setq layloc (cons lay layloc))
(vla-put-lock lag :vlax-false)
)
)
(vl-catch-all-apply (Funktion vla-put-color) (list ent color))
(vla-regen adoc acallviewports)
)
(princ "Nichts Auswahl!) Versuchen Sie es wieder.")
)
)
(Foreach i layloc (vla-put-lock i :vlax-true))
(vla-endundomark adoc)
)
)
(princ)
)
(defun pl:block-color (/ adoc Blöcke Farbe legt)
(setq adoc (vla-get-activedocument (vlax-get-acad-objekt))
Blöcke (vla-get-blocks adoc)
Laien (vla-get-layers adoc)
Farbe (acad_colordlg 256)
)
(wenn Farbe
(progn (setvar "errno) 0)
(vla-startundomark adoc)
(nicht (vl-catch-all-error-p)
(Setq-Inseln (vl-catch-all-apply)
(Funktionsentsel)
'('\nselect block <exit>:")
)
)
)
)
(/= 52 (getvar "errno")
)
(falls ins
(progn (setq ins (vlax-ename->vla-object (car ins)))
(wenn (= (vla-get-objectname ins) "acdbblockreference")
(falls (vlax-property-p ins 'path)
(princ "\nthis is Externe Referenz! versuchen, andere auszuwählen.")
(progn (_pl:block-color Blöcke ins color lays)
(vla-regen adoc acallviewports)
)
)
(princ "\nthis isn't block! versuchen, andere auszuwählen.")
)
)
(princ "Nichts Auswahl!) Versuchen Sie es wieder.")
)
)
(vla-endundomark adoc)
)
)
(princ)
)
(defun _pl:block-color (blöcke ins color lays / lay layfrz layloc)
(vlax-for e (vla-item Blöcke (vla-get-name ins))
(setq lagen (vla-item lagen (vla-get-layer e)))
(wenn (= (vla-get-freeze lay) :vlax-true)
(progn (setq layfrz (cons layfrz)) (vla-put-freeze lay:vlax-false))
)
(wenn (= (vla-get-lock lay) :vlax-true)
(Fortsetzung)
)
(vl-catch-all-apply (Funktion vla-put-color) (list e color))
(wenn (und (= (vla-get-objectname e) "acdbblockreference")
(nicht (vlax-property-p e 'path))
)
(_pl:block-color Blöcke e Farbe legt)
)
(Foreach i layfrz (vla-put-freeze i:vlax-true))
(Foreach i layloc (vla-put-lock i :vlax-true))
)
)
(Prog.)
(princ "\blcc - ändert die Farbe der ausgewählten Blöcke)
(princ "\nencc - ändert die Farbe der ausgewählten Objekte (kann Bestandteil des Blocks sein)")
(princ)</exit></exit>
(defun c:blcc () (pl:block-color) (princ)
(defun c:encc () (pl:block-ent-color) (princ)
;;get von alaspher http://forum.dwg.ru/showthread.php?t=1036;; http://forum.dwg.ru/showpost.php?p=166220&postcount=18(vl-load-com)
(defun pl:block-ent-color (/ adoc Blöcke Farbe ent legt)
(setq adoc (vla-get-activedocument (vlax-get-acad-objekt))
Laien (vla-get-layers adoc)
Farbe (acad_colordlg 256)
)
(wenn Farbe
(progn (setvar "errno) 0)
(vla-startundomark adoc)
(nicht (vl-catch-all-error-p)
(setq ent (vl-catch-all-apply)
(Funktion Nentsel)
'('\nselect Entity <exit>:")
)
)
)
)
(/= 52 (getvar "errno")
)
(falls ent
(progn (setq ent (vlax-ename->vla-object (car ent))
Laien (vla-item Laien (vla-get-layer ent))
)
(wenn (= (vla-get-lock lay) :vlax-true)
(progn (setq layloc (cons lay layloc))
(vla-put-lock lag :vlax-false)
)
)
(vl-catch-all-apply (Funktion vla-put-color) (list ent color))
(vla-regen adoc acallviewports)
)
(princ "Nichts Auswahl!) Versuchen Sie es wieder.")
)
)
(Foreach i layloc (vla-put-lock i :vlax-true))
(vla-endundomark adoc)
)
)
(princ)
)
(defun pl:block-color (/ adoc Blöcke Farbe legt)
(setq adoc (vla-get-activedocument (vlax-get-acad-objekt))
Blöcke (vla-get-blocks adoc)
Laien (vla-get-layers adoc)
Farbe (acad_colordlg 256)
)
(wenn Farbe
(progn (setvar "errno) 0)
(vla-startundomark adoc)
(nicht (vl-catch-all-error-p)
(Setq-Inseln (vl-catch-all-apply)
(Funktionsentsel)
'('\nselect block <exit>:")
)
)
)
)
(/= 52 (getvar "errno")
)
(falls ins
(progn (setq ins (vlax-ename->vla-object (car ins)))
(wenn (= (vla-get-objectname ins) "acdbblockreference")
(falls (vlax-property-p ins 'path)
(princ "\nthis is Externe Referenz! versuchen, andere auszuwählen.")
(progn (_pl:block-color Blöcke ins color lays)
(vla-regen adoc acallviewports)
)
)
(princ "\nthis isn't block! versuchen, andere auszuwählen.")
)
)
(princ "Nichts Auswahl!) Versuchen Sie es wieder.")
)
)
(vla-endundomark adoc)
)
)
(princ)
)
(defun _pl:block-color (blöcke ins color lays / lay layfrz layloc)
(vlax-for e (vla-item Blöcke (vla-get-name ins))
(setq lagen (vla-item lagen (vla-get-layer e)))
(wenn (= (vla-get-freeze lay) :vlax-true)
(progn (setq layfrz (cons layfrz)) (vla-put-freeze lay:vlax-false))
)
(wenn (= (vla-get-lock lay) :vlax-true)
(Fortsetzung)
)
(vl-catch-all-apply (Funktion vla-put-color) (list e color))
(wenn (und (= (vla-get-objectname e) "acdbblockreference")
(nicht (vlax-property-p e 'path))
)
(_pl:block-color Blöcke e Farbe legt)
)
(Foreach i layfrz (vla-put-freeze i:vlax-true))
(Foreach i layloc (vla-put-lock i :vlax-true))
)
)
(Prog.)
(princ "\blcc - ändert die Farbe der ausgewählten Blöcke)
(princ "\nencc - ändert die Farbe der ausgewählten Objekte (kann Bestandteil des Blocks sein)")
(princ)</exit></exit>