| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| | |
 | IRIS 3 Baum, ein Webinar am 28.05.2026
|
|
Autor
|
Thema: Schraffurmuster ändern (Skript) (1537 / mal gelesen)
|
Musicus Mitglied Staatl. gepr. Techniker
  
 Beiträge: 688 Registriert: 26.07.2005 AutoCAD 2021 Linear Building 18 Linear CAD Solutions 18 C.A.T.S. Windows 10 64bit
|
erstellt am: 24. Okt. 2017 15:49 <-- editieren / zitieren --> Unities abgeben:         
Hallo Forum, ich wollte mit einer kleinen Zeile Code das Schraffurmuster von ausgewählten Schraffuren ändern. (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(2 . "SOLID")(-4 . "AND>"))))(command "-SCHRAFFEDIT" AWS "E" "ANSI31" "2.5" "0") Wenn ich die Zeile in die Befehlszeile kopiere, funktioniert sie auch, wie sie soll. Wenn ich sie aber in ein Skript einbaue, passiert nix. Bisher hatte ich diese Zeile erfolgreich verbaut, funktioniert auch im Skript. (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(2 . "SOLID")(-4 . "AND>"))))(command "_erase" AWS "") Woran kann das liegen? Danke und Gruß, Musicus [Diese Nachricht wurde von Musicus am 24. Okt. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
     
 Beiträge: 6052 Registriert: 16.09.2004 Windows 10 64bit, ACAD Rel. 14 - ACAD 2023
|
erstellt am: 24. Okt. 2017 17:02 <-- editieren / zitieren --> Unities abgeben:          Nur für Musicus
Zitat: Original erstellt von Musicus:
Woran kann das liegen?
Soweit ich auf die Schnelle eruieren konnte, akzeptiert -Schraffedit in einem Script nicht mehrere Objekte im Auswahlsatz. Probier mal folgendes: (while (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(2 . "SOLID")(-4 . "AND>"))))(command "-SCHRAFFEDIT" aws "E" "Ansi31" 2.5 0)) Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)
[Diese Nachricht wurde von jupa am 24. Okt. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Musicus Mitglied Staatl. gepr. Techniker
  
 Beiträge: 688 Registriert: 26.07.2005 AutoCAD 2021 Linear Building 18 Linear CAD Solutions 18 C.A.T.S. Windows 10 64bit
|
erstellt am: 26. Okt. 2017 15:02 <-- editieren / zitieren --> Unities abgeben:         
|
BeaSto Mitglied
 Beiträge: 4 Registriert: 24.03.2026 AutoCad26 Revit25 Linear/Viptool Windows
|
erstellt am: 24. Mrz. 2026 12:38 <-- editieren / zitieren --> Unities abgeben:          Nur für Musicus
|
CADwiesel Moderator CAD4FM UG
     

 Beiträge: 2002 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 24. Mrz. 2026 12:46 <-- editieren / zitieren --> Unities abgeben:          Nur für Musicus
|
cadffm Moderator 良い精神
       

 Beiträge: 22817 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 24. Mrz. 2026 12:54 <-- editieren / zitieren --> Unities abgeben:          Nur für Musicus
Hallo Beate, hast du dir die Zeile schon einmal in Ruhe ange sehen? Tip: Es ist für das Schraffurmuster "ANSI31" Das bekommst du selbst hin, mit dem Anpassen Sollte ich mich irren - ausgeschlossen: Wenn doch nicht, poste deine angepasste Zeile und dir wird geholfen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BeaSto Mitglied
 Beiträge: 4 Registriert: 24.03.2026 AutoCad26 Revit25 Linear/Viptool Windows
|
erstellt am: 24. Mrz. 2026 13:59 <-- editieren / zitieren --> Unities abgeben:          Nur für Musicus
Vielleicht habe ich es nicht eindeutig formuliert. Aus der Schraffur A_SAND_0002 (benutzerdefiniert) soll ANSI31 werden. Wenn ich in der Zeile Solid gegen A_SAND_0002 ersetzte, funktioniert es nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22817 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 24. Mrz. 2026 14:20 <-- editieren / zitieren --> Unities abgeben:          Nur für Musicus
Ich könnte wetten du hast es anders geschrieben, oder es heißt anders! Die Zeile in die Befehlszeile tippen (copy&paste geht auch  ) und dann deine Schraffur anklicken, im code muß die dann EXAKT so geschrieben werden: (print(cdr(assoc 2 (entget(car(entsel)))))) Wenn die Zeile genau das wiedergibt, was du in der Zeile stehen hast, sollte es gehen. Wenn doch nicht, dann schaue ich gerne mal nach woran es liegt, dafür poste bitte eine Beispiel DWG (eine A_SAND_0002 Schraffur reicht aus) und deine geänderte Zeile natürlich auch. Blöde Frage: Per Hand kannst du aber in ANSI31 ändern, ja? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BeaSto Mitglied
 Beiträge: 4 Registriert: 24.03.2026 AutoCad26 Revit25 Linear/Viptool Windows
|
erstellt am: 25. Mrz. 2026 11:15 <-- editieren / zitieren --> Unities abgeben:          Nur für Musicus
|
cadffm Moderator 良い精神
       

 Beiträge: 22817 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 25. Mrz. 2026 11:47 <-- editieren / zitieren --> Unities abgeben:          Nur für Musicus
Ich habe eine DWG mit der Schraffur (A_SAND_0002) angehängt. Diese soll in der Zeile gegen Solid ausgetauscht werdenPasst genau wie du geschrieben hast und entsprechend funktioniert auch der Code wenn du "SOLID" gegen "A_SAND_0002" tauschst. , damit diese A_SAND_0002 Schraffur dann AANSI21 wird AANSI21 Wie auch immer, im Code steht "ANSI31" für den Ziel-Schraffurnamen. Zum testen würde ich "ANSI31" stehen lassen, wenn das funktioniert und du ein anderes Ziel-Muster angegeben willst, dann mache es und achte dabei wieder peinlichst genau auf die Schreibweise.
BTW : Ich bin nicht sicher warum Jupa den Code SO geschrieben hat, aber da diese Zeile problematisch sein kann, ändere ich diese etwas ab auf: (if (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(2 . "A_SAND_0002")(-4 . "AND>"))))(command "-SCHRAFFEDIT" aws "E" "Ansi31" 2.5 0))
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BeaSto Mitglied
 Beiträge: 4 Registriert: 24.03.2026 AutoCad26 Revit25 Linear/Viptool Windows
|
erstellt am: 25. Mrz. 2026 16:08 <-- editieren / zitieren --> Unities abgeben:          Nur für Musicus
Sorry, für meinen Tippfehler mit ANSI. Hurra, vielen Dank, jetzt klappt es! Allerdings nur in der Commandzeile. Ich würde es gerne als Script ausführen. Was ist dafür notwendig? Danke im Voraus und Gruß Beate Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22817 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 25. Mrz. 2026 16:22 <-- editieren / zitieren --> Unities abgeben:          Nur für Musicus
Hi, >"Hurra, vielen Dank, jetzt klappt es!" Ich habe denke ich nichts anderes gemacht, einfach SOLID gegen A_SAND_0002 ersetzt. >"Allerdings nur in der Commandzeile" Es gibt nichts zu verändern, das läuft genauso in einem Script. Da hast du also einen anderen Bug eingebaut, an dieser Zeile liegt es nicht und wir kennen weder dein Script, noch die Rückgabe aus deinem Befehlsablauf. Stelle CMDECHO auf 1 lasse das Script laufen schau dir den Ablauf an [F2] und teile ggf. den Teil des Protokolls (ab Aufruf des Scripts) samt Skript / gezippt
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |