jim78b
Guest
ich möchte ein skript machen, das auf einen block klicken, ändert die farbe völlig unabhängig von der schicht... kannst du es tun?
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
warum nicht die eigenschaften auf dablocco (byblock) gesetzt verwenden?ich möchte ein skript machen, das auf einen block klicken, ändert die farbe völlig unabhängig von der schicht... kannst du es tun?
;;;cambia il colore ai blocchi nidificati
(defun c:ccb (/ cmd b_name col list_b en ed)
**** gp 02/12/2011 ***
(Setq cmd (getvar "cmdecho")
(Setvar "cmdecho" 0)
(Befehl "_undo" "_begin")
(setq b_name (cdr (assoc 2 (entget)))
(setq col (getstring "\nnumero colore: "))
(setq list_b (cons b_name list_b))
(setq b_def (tblsearch "block" b_name))
(setq en (cdr (assoc -2 b_def)))
(while)
(setq ed)
(if (= (cdr (assoc 0 ed)) "Insert")
(Prog.)
(setq b_name (cdr (assoc 2 ed)))
(setq list_b (cons b_name list_b))
)
)
(setq en)
)
(Repeat (Setq n (längeliste_b))
(setq b_name (nth (setq n (1- n)) list_b))
(Befehl "-bedit" b_name "_chprop" "_all" "" "c" col "" "_bclose")
)
(Setvar "cmdecho" cmd)
(Befehl "_undo" "_end")
(princ)
)
Guten Morgen, ich möchte nach Informationen über diese Lispe fragen, ich habe es auf einigen Blöcken versucht und es funktioniert richtig, aber einige Blöcke, die Attribute enthalten, die bleiben von der ursprünglichen Farbe, Sie können es ändern, so dass auch die Farbe der Attribute ändert?Ich habe die Decke der anderen Diskussion aktualisiert, die selbstverständlich die Farbe zu verschachtelten Blöcken verändert, die Veränderung spiegelt sich auch allen anderen wider, die sie enthalten.
Code:;;;cambia il colore ai blocchi nidificati (defun c:ccb (/ cmd b_name col list_b en ed) **** gp 02/12/2011 *** (Setq cmd (getvar "cmdecho") (Setvar "cmdecho" 0) (Befehl "_undo" "_begin") (setq b_name (cdr (assoc 2 (entget)))) (setq col (getstring "\nnumero colore: ")) (setq list_b (cons b_name list_b)) (setq b_def (tblsearch "block" b_name)) (setq en (cdr (assoc -2 b_def))) (while) (setq ed) (if (= (cdr (assoc 0 ed)) "Insert") (Prog.) (setq b_name (cdr (assoc 2 ed))) (setq list_b (cons b_name list_b)) ) ) (setq en) ) (Repeat (Setq n (Längeliste_b)) (setq b_name (nth (setq n (1- n)) list_b)) (Befehl "-bedit" b_name "_chprop" "_all" "" "c" col "" "_bclose"") ) (Setvar "cmdecho" cmd) (Befehl "_undo" "_end") (princ) )
Vielen Dank für die Hilfe, und warum ändert dieser Block nicht die Farbe nach Ihnen? ?Eigentlich ändern die Attribute die Farbe, aber Sie müssen sie synchronisieren. Sie geben nur die Attsync oder Sinus Befehl und wird die Farbe magisch erscheinen. ohne den Befehl zu tippen, erlaube ich mir, die Synchronisationszeile in den Deckel des guten gp hinzuzufügen.
(defun c:ccb (/ cmd b_name col list_b en e)
- Ja.
(Setq cmd (getvar "cmdecho")
(Setvar "cmdecho" 0)
(Befehl "_undo" "_begin")
(setq b_name (cdr (assoc 2 (entget (car)) (entsel "\nsel select the block: "))))))
(setq col (getstring "\nnumero colore: ")
(setq list_b (cons b_name list_b))
(setq b_def (tblsearch "block" b_name))
(setq en (cdr -2 b_def)))
(sing)
(setq und (entget en)
(wenn (= cdr) "Insert")
(Progn)
(setq b_name (cdr (assoc 2 ed))))
(setq list_b (cons b_name list_b))
)
)
(setq en)
)
(Repeat (Setq n (Längeliste_b))
(setq b_name (nth (setq n (1-n)) list_b))
(Befehl "-bedit" b_name "_chprop" "_all" "c" mit ""_bclose "")
)
(vl-cmdf "_attsync" "n" b_name)
(Setvar "cmdecho" cmd)
(Befehl "_undo" "_end")
(princ)
)
Hallo, ich frage eine letzte Sache, können Sie den Befehl zur Synchronisation des Attributs diese Lisp eingeben?alles, was Sie reduzieren können:
(defun c:ccb2 (/ Blöcke Blockfarbe)
(vl-load-com)
(setq Blöcke (vla-get-Blöcke (vla-get-activedocument))
block (vlax-ename->vla-object (car (entsel "\nselect reference block: ")
Farbe (getint "\nscegliere colore: "
)
(vlax-map-Sammlung)
(vla-item Blöcke (vla-get-name block)
'(lambda (elem)
(vla-put-color elem color)
)
)
(vl-cmdf "_regen")
)