| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Lisp für Schraffurmuster (3536 mal gelesen)
|
knblc Mitglied
Beiträge: 25 Registriert: 05.12.2003
|
erstellt am: 20. Dez. 2004 11:47 <-- editieren / zitieren --> Unities abgeben:
Ich bin auf der Suche nach folgendendem Lisp: 1. Ich möchte aus einer Zeichnung alle Schraffuren mit dem Musternamen "solid" löschen. Ein Lisp , mit dem sich sämtliche Schraffuren löschen lassen habe ich bereits gefunden. 2. Gibt es die Möglichkeit, die Schnellauswahl per Lisp zu automatisieren ?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 20. Dez. 2004 12:00 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
Hallo knblc, zu deinem ersten Problem: * Befehl löschen aufrufen * 'filter (Befehl Filter transparent aufrufen) * Schraffur Muster Name (Hatch Pattern name) * Händisch SOLID eintragen * zur Auswahl hinufügen * Filter beenden * aktive Auswahlsatz mit Filter fühllen lassen * Befehl löschen bestätigen zu deinem zweiten Problem weis ich leider nix....
------------------ Grüsse Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
knblc Mitglied
Beiträge: 25 Registriert: 05.12.2003
|
erstellt am: 20. Dez. 2004 12:03 <-- editieren / zitieren --> Unities abgeben:
|
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 20. Dez. 2004 12:20 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
|
knblc Mitglied
Beiträge: 25 Registriert: 05.12.2003
|
erstellt am: 20. Dez. 2004 12:32 <-- editieren / zitieren --> Unities abgeben:
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 20. Dez. 2004 12:51 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
Na, wenn in Lisp dann einfach so Code:
(if (setq auswahl (ssget "X" '((0 . "HATCH")(2 . "SOLID")))) (command "_erase" auswahl "") )
Allerdings werden damit keine Schraffuren gefunden, die in Blöcken definiert sind! ------------------ Mit freundlichem Gruß Udo Hübner ---------- 1. Sind Sie im Zweifel, murmeln Sie. 2. Sind Sie in Schwierigkeiten, delegieren Sie. 3. Sind Sie verantwortlich, denken Sie nach. [Diese Nachricht wurde von CAD-Huebner am 20. Dez. 2004 editiert.] [Diese Nachricht wurde von CAD-Huebner am 20. Dez. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
knblc Mitglied
Beiträge: 25 Registriert: 05.12.2003
|
erstellt am: 20. Dez. 2004 13:08 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 20. Dez. 2004 13:29 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
und wenn es wirkliche alle Schraffuren - auch die in Blöcken löschen soll: (defun C ELALL-SOLIDHATCH( / BLOCK ) (vl-load-com) (vlax-for LAYOUT (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM (setq BLOCK (vla-get-Block LAYOUT)) (if(and(=(strcase(vla-get-objectname ITEM))(strcase "AcDbHatch")) (=(strcase(vla-get-PatternName ITEM))(strcase "SOLID")) ) (vl-catch-all-error-p (vl-catch-all-apply 'vla-delete (list ITEM) ) ) ) ) ) (vlax-for BLOCK (vla-get-blocks(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM BLOCK (if(and(=(strcase(vla-get-objectname ITEM))(strcase "AcDbHatch")) (=(strcase(vla-get-PatternName ITEM))(strcase "SOLID")) ) (vl-catch-all-error-p (vl-catch-all-apply 'vla-delete (list ITEM) ) ) ) ) ) (vla-regen(vla-get-activedocument (vlax-get-acad-object)) acAllViewports) ) SCNR ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lothar1972 Mitglied Haustechniker
Beiträge: 8 Registriert: 25.01.2019
|
erstellt am: 25. Jan. 2019 15:34 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
Hallo! ich bin von dem Lisp-Code echt begeistert. Habe aber leider keine Ahnung von Lisp. Wie kompliziert wäre ein Lisp das so wie das vorherige alles im Plan als erstes auf Farbe vonlayer setzt und dann die Schraffuren auf z.B. Farbe 8? Danke!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meldin Mitglied
Beiträge: 398 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 25. Jan. 2019 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
|
Meldin Mitglied
Beiträge: 398 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 25. Jan. 2019 16:21 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
könnte man so machen. Code: (progn (command-s "-VONLAYEREINST" (ssget "x") "" "Ja" "Ja") (if (setq auswahl (ssget "X" '((0 . "HATCH") (2 . "SOLID")))) (command "ändern" auswahl "" "e" "f" "8" "") ) )
------------------ Gruß Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lothar1972 Mitglied Haustechniker
Beiträge: 8 Registriert: 25.01.2019
|
erstellt am: 27. Jan. 2019 15:56 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
Zitat: Original erstellt von Meldin: könnte man so machen.Code: (progn (command-s "-VONLAYEREINST" (ssget "x") "" "Ja" "Ja") (if (setq auswahl (ssget "X" '((0 . "HATCH") (2 . "SOLID")))) (command "ändern" auswahl "" "e" "f" "8" "") ) )
Danke für Deine Hilfe! Nur bin ich definitiv zu "blöd" das zum laufen zu bringen.<P>Ich würde das anstatt der Zeile " 'vla-delete " (ich schätz mal das löscht die getroffenen Auswahl) in den Code einfügen, aber bin daran kläglich gescheitert. Danke nochmals! [Diese Nachricht wurde von Lothar1972 am 27. Jan. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADdog Ehrenmitglied V.I.P. h.c.
Beiträge: 2280 Registriert: 30.04.2004 Intel Xeon 3,6 GHz 32 GB RAM NVIDIA Quadro P2000 Windows 10 Enterprise AutoCADmap 3D 2023 WS-Landcad 2023 QGIS 3.28.5
|
erstellt am: 28. Jan. 2019 07:52 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
Zitat: Original erstellt von Lothar1972: Habe aber leider keine Ahnung von Lisp. Danke!
Dann kann man es fast genauso einfach ohne Lisp machen 1. mit VONLAYEREINST alles auf Farbe VonLayer 2. mit Schnellauswahl alle Schraffuren auf Farbe 8 ------------------
Gruß Thomas CADdog the dog formerly known as TR PS: Deine Systeminformation ist seltsam AutoCAD spricht mit einem, aber viele hören nicht zu. [Diese Nachricht wurde von CADdog am 28. Jan. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lothar1972 Mitglied Haustechniker
Beiträge: 8 Registriert: 25.01.2019
|
erstellt am: 28. Jan. 2019 08:12 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
Zitat: Original erstellt von CADdog:
Dann kann man es fast genauso einfach ohne Lisp machen 1. mit VONLAYEREINST alles auf Farbe VonLayer 2. mit Schnellauswahl alle Schraffuren auf Farbe 8
Guten Morgen CADdog / Thomas! Bei Plänen die wir selber zeichnen natürlich, da ist das kein Problem. Aber ich hab leider jedes Jahr zumindest 15 verschiedene Architekten mit zumindest ebensovielen verschiedenen CAD-Sytemen und das sind Wände und anderes Zeug oft 100 mal in Blöcken verschachtelt... und natürlich gibt es in den Plänen dann nix das Vonlayer ist... weil oft auch Wand und Schraffur am selben Layer liegen... Und da bei dem Lisp oben das mit den löschen so toll und einfach geklappt hat, dachte ich das es mit umfärben doch ähnlich gehen sollte? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meldin Mitglied
Beiträge: 398 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 28. Jan. 2019 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für knblc
das sollte diese zeile machen (command-s "-VONLAYEREINST" (ssget "x") "" "Ja" "Ja") ansonsten gib mal VONLAYEREINST in dieBbefehlszeile und arbeite sie mal durch es gibt hier auch noch die Möglichkeit für I wie Einstellungen. ------------------ Gruß Wolfgang [Diese Nachricht wurde von Meldin am 28. Jan. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |