| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Änder der Schraffurfarbe im Block (2769 mal gelesen)
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 15. Jul. 2011 19:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Frage wie kann ich die Farbe der Schraffur im Block ändern. Habe ihr einen Code der mir die Farbe änder ist ok so. Aber jetzt will ich, das ich die Schraffurfarbe im Block, z.B auf Layer null legen kann.
Code: (defun GetBlockEntity (#blockname / retlst) (if (tblsearch "BLOCK" #blockname) (vlax-for each (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)) ) #blockname ) (setq retlst (cons each retlst)) ) ) ) (defun ChangeColor (#vlaObjectList #col) (foreach each #vlaObjectList (vla-put-color each #col)) )
;;;Einfaches Beispiel: Ändern der Farben in einem Block ;;;Aufruf: (ChangeColor (GetBlockEntity "MeinBlock") 1)
Danke
------------------ Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 15. Jul. 2011 20:16 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 15. Jul. 2011 20:22 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 15. Jul. 2011 20:32 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
mit "each" hast du dein vla-objekt, dieses kannst mal "dumpen" und analysieren dann suchst du dir dein/e gewünschtes/n Merkmal/e und baust dir ne Schleife zum ändern der Eigenschaften noch prüfen ob diese vorhanden ist - sicher ist sicher und fertig versuch mal - ist nicht schwer und keine Hexerei ------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 15. Jul. 2011 20:40 <-- editieren / zitieren --> Unities abgeben:
Danke CADmium Ich will im Block die Schraffur, auf einen anderen Layer legen. z.B auf Layer 0 oder vonLayer. Wie kann ich im Block auf die Schraffur zugreifen. auch mit (vla-put-....., weis da leider nicht weiter. Danke
------------------ Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 sw: Win7-x64 Office 365 ProPlus C3D (& LT ) ET; DACH; Extensions ------------------- hw: FX3800 i5 CPU 670 8GB RAM
|
erstellt am: 15. Jul. 2011 20:45 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 15. Jul. 2011 20:47 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 15. Jul. 2011 21:22 <-- editieren / zitieren --> Unities abgeben:
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002 Autocad 2021/64B Win10 WORKSTATION Intel(R) CPU E5-1620 3.60GHz 32 GB Ram 64 Bit-Betriebssystem HP Designjet T7200 Grafik NVIDIA Quadro P4000 ZWCAD2021
|
erstellt am: 15. Jul. 2011 21:32 <-- editieren / zitieren --> Unities abgeben:
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 15. Jul. 2011 21:36 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Zitat: Original erstellt von Dober Heinz: @ runkelruebeJa hast recht. Will die Schraff auf vonLayer legen. und dem Rest gebe ich die Farbe z.B 7 Danke für die Aufklärung.
was von der Schraffur willst du auf von Layer legen? die Farbe? den Linientyp? die Linienstärke? ??? was ist der Rest? die restlichen Objekte im Block? ...
oh man - schwere Geburt ------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 15. Jul. 2011 21:57 <-- editieren / zitieren --> Unities abgeben:
@Dorfy So nochmal Das Lisp das ich reingestellt habe, setzt mir im Block alles auf Farbe 7 = schwarz, was ich halt einstelle. Ist ganz ok so, passt auch super. So und jetzt will ich von diesem Block,nur die Schraffur auf Farbe 256 setzen oder auch vonLayer ist ja das selbe. Mehr will ich nicht. Danke ------------------ Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 15. Jul. 2011 22:05 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 15. Jul. 2011 22:28 <-- editieren / zitieren --> Unities abgeben:
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002 Autocad 2021/64B Win10 WORKSTATION Intel(R) CPU E5-1620 3.60GHz 32 GB Ram 64 Bit-Betriebssystem HP Designjet T7200 Grafik NVIDIA Quadro P4000 ZWCAD2021
|
erstellt am: 15. Jul. 2011 22:36 <-- editieren / zitieren --> Unities abgeben:
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 16. Jul. 2011 09:49 <-- editieren / zitieren --> Unities abgeben:
@ CADmium Eine Frage noch. Wenn ich einen Block wähle den ich vor langer Zeit erstellt habe, dann wird mir die Schraffur nicht geändert. Macht einfach gar nichts, auch keine Fehlermeldung. Wenn ich eine Block wähle wo ich die Schraffur neu erstelle, dann ist alles ok. Die Schraffur ist immer Solid. Woran kann das liegen? Hab da noch ein Lisp gefunden, wo ich die Schraffur ändern kann, weiss aber leider nie, ob ich die Schraff erwische. Danke Code: (defun c:bof (/ oObj strLayer) (setq oObj (vlax-ename->vla-object (car (nentsel "\nWählen Sie das Objekt in einem Block: ")))) (vla-put-color oObj 256) (vla-Regen (vla-get-ActiveDocument (vlax-get-acad-object)) acActiveViewport) (princ) ); bol
------------------ Heinz [Diese Nachricht wurde von Dober Heinz am 16. Jul. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 16. Jul. 2011 10:27 <-- editieren / zitieren -->
Hi, >> Wenn ich einen Block wähle den ich vor langer Zeit erstellt habe [...] >> Die Schraffur ist immer Solid.Wenn Du mit 'vor langer Zeit' AutoCAD 14 oder so meinst, dann gab es noch keine Schraffur mit Schraffurtyp 'SOLID', aber es gab auch damals (wie heute) den Geometrietyp 'SOLID', der dazumals gerne als Workaround für die fehlende füllende Schraffur herangezogen wurde. Guck daher mal im Blockeditor einen solchen alten Block an, markiere die (vermeintliche) Schraffur und berichte, was das Eigenschaftsfenster als Geometrietyp von sich gibt. Und in jedem Fall wird es CADmium (und den anderen LISPlern) helfen, wenn Du einen solchen Block hier zur Verfügung stellst, dann können Sie gucken statt raten. (ist für Euch alle effizienter ). - alfred - ------------------ www.hollaus.at |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 16. Jul. 2011 10:55 <-- editieren / zitieren --> Unities abgeben:
Hallo So hier 2 Blöcke, bei einem ging es, beim andern nicht. Mit vor langer Zeit meine ich, müsste so um 2000 gewesen sein, weiss das nicht so genau hat mein Vorränger gemacht. Die Blöcke ich ich heute erstellt habe um zu Testen, da funktioniert das immer. Ist nicht so schlimm, wollte das nur Berichten. Danke ------------------ Heinz
[Diese Nachricht wurde von Dober Heinz am 16. Jul. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002 Autocad 2021/64B Win10 WORKSTATION Intel(R) CPU E5-1620 3.60GHz 32 GB Ram 64 Bit-Betriebssystem HP Designjet T7200 Grafik NVIDIA Quadro P4000 ZWCAD2021
|
erstellt am: 18. Jul. 2011 07:30 <-- editieren / zitieren --> Unities abgeben:
@ Hallo hier ist noch einen Lösung, für das Problem Schraffur im Block ändern. Danke an alle Code: (defun c:ChangeHatchColor () (vl-load-com) (vlax-for blk (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-Acad-Object))) (vlax-for i blk (if (= (vla-get-ObjectName i) "AcDbHatch") (vla-put-Color i 250) ) ) ) (command "_.regenall") (princ) )
------------------ Heinz [Diese Nachricht wurde von Dober Heinz am 18. Jul. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 18. Jul. 2011 07:36 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 18. Jul. 2011 07:43 <-- editieren / zitieren --> Unities abgeben:
@ CADmium Leider kenn ich mich mit dem Vl- Befehlen überhaupt nicht aus. Leider ist es so, das dein Beitrag (Danke) zu 90% nicht funktioniert. Weis auch nicht woran das liegt. Das letzte Lisp funktioniert immer, wollte es so ändern das ich einen Block wählen kann, leider VL ist nicht das meine. Danke ------------------ Heinz [Diese Nachricht wurde von Dober Heinz am 18. Jul. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |