| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Alle Schraffuren Auswählen / auf Farbe 9 legen / nach ganz unten legen (1469 mal gelesen)
|
Manuel486 Mitglied Technischer Zeichner Elektro
Beiträge: 194 Registriert: 31.01.2020
|
erstellt am: 05. Feb. 2020 16:02 <-- editieren / zitieren --> Unities abgeben:
Hallo. Hat von euch vielleicht jemand eine LISP oder Befehlsstring, der mir die Aufgabe oben im Betreff Ausführen würde ? Das selbe müsste danach auch mit einer SOLID Schraffur gemacht werden, allesdings auf die Farbe PANTONE 9064 C. Den Befehl zur Auswahl der Schraffur habe ich: ^C^C(sssetfirst nil (ssget "_X" '((0 . "HATCH")(410 . "Model")))) Ich komme aber beim umlegen der Farbe nicht weiter. Den Befehl abschließen würde ich dann mit HATCHTOBACK. MFG Manuel486 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 06. Feb. 2020 07:31 <-- editieren / zitieren --> Unities abgeben: Nur für Manuel486
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004 Window 10 ACAD 2021 CIVIL 2021 BricsCAD V14-V22 Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz 16.0GB RAM NVIDIA GeForce GTX 1050<P>
|
erstellt am: 06. Feb. 2020 07:39 <-- editieren / zitieren --> Unities abgeben: Nur für Manuel486
Hallo Manuell, mit folgendem Code müßte es funktionieren. Ich habe die Gruppencodes 420 und 430 in die Objektliste der Schraffuren angehängt, in AutoCAD 2019 funktioniert es. Code:
(defun c:test ( / AWS N OBJLIST) (if (setq aws (ssget "_X" (list (cons 0 "HATCH")(cons 2 "SOLID")))) (progn (setq n 0) (repeat (sslength aws) (setq objList (vl-remove-if '(lambda(X) (member(car X)'(420 430))) (entget(ssname aws n))) objList (append objList (list '(420 . 15856094) '(430 . "PANTONE+ Pastels & Neons Coated$PANTONE 9064 C")))) (entmod objList) (setq n (+ n 1))) (command "_.hatchtoback")) ) (princ))
------------------ viele Grüße Jörn http://www.bosse-engineering.com Multifilter Youtube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meldin Mitglied
Beiträge: 381 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 06. Feb. 2020 11:52 <-- editieren / zitieren --> Unities abgeben: Nur für Manuel486
|
Manuel486 Mitglied Technischer Zeichner Elektro
Beiträge: 194 Registriert: 31.01.2020
|
erstellt am: 06. Feb. 2020 12:10 <-- editieren / zitieren --> Unities abgeben:
Der Befehl klappt sehr gut, danke dafür. Ich habe mich aber etwas verkehrt ausgedrückt. Ich möchte in einer Zeichnung folgendes tun, in genau dieser Reihenfolge: - Alle Schraffuren auswählen -> auf Farbe 9 legen -> ganz nach unten legen - Alle SOLID Schraffuren auswählen -> auf Farbe PANTONE 9064 C -> ganz nach unten Zur Erklärung: Es geht darum einen Architekten-Plan auf unsere Bedürfnisse "Aufzubereiten", wenn ich also eine Wand habe mit einer ANSI31 Schraffur und darunter eine SOLID z.B. als Brandschutzangabe, dann soll die ANSI31 auf Farbe 9 liegen und die SOLID auf Pantone. Die SOLID muss immer unter allem anderen liegen, damit man Objekte darüber auch sieht ;-) Habe versucht deinen Befehl auf Farbe 9 umzuschreiben aber er klappt nicht. (defun c:test ( / AWS N OBJLIST) (if (setq aws (ssget "_X" (list (cons 0 "HATCH")))) (progn (setq n 0) (repeat (sslength aws) (setq objList (vl-remove-if '(lambda(X) (member(car X)'(62))) (entget(ssname aws n))) objList (append objList (list '(62 . 9)))) (entmod objList) (setq n (+ n 1))) (command "_.hatchtoback")) ) (princ)) Wärst du so nett und würdest mir das in einem Befehl zusammenfassen?!
MFG Manuel486
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004 Window 10 ACAD 2021 CIVIL 2021 BricsCAD V14-V22 Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz 16.0GB RAM NVIDIA GeForce GTX 1050<P>
|
erstellt am: 06. Feb. 2020 12:14 <-- editieren / zitieren --> Unities abgeben: Nur für Manuel486
Hallo Manuel, wahrscheinlich müssen nur vorher eventuell bestehende Gruppencodes 420 und 430 entfernt werden. Ungetestet:
Code:
(defun c:test ( / AWS N OBJLIST) (if (setq aws (ssget "_X" (list (cons 0 "HATCH")))) (progn (setq n 0) (repeat (sslength aws) (setq objList (vl-remove-if '(lambda(X) (member(car X)'(62 420 430))) (entget(ssname aws n))) objList (append objList (list '(62 . 9)))) (entmod objList) (setq n (+ n 1))) (command "_.hatchtoback")) ) (princ))
------------------ viele Grüße Jörn http://www.bosse-engineering.com Multifilter Youtube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Manuel486 Mitglied Technischer Zeichner Elektro
Beiträge: 194 Registriert: 31.01.2020
|
erstellt am: 06. Feb. 2020 13:38 <-- editieren / zitieren --> Unities abgeben:
Das ist der Befehl für die SOLIDS. Er legt die Solids auf die richtige Farbe. (defun c:Farben-umlegen ( / AWS N OBJLIST) (defun c:test ( / AWS N OBJLIST) (if (setq aws (ssget "_X" (list (cons 2 "SOLID")))) (progn (setq n 0) (repeat (sslength aws) (setq objList (vl-remove-if '(lambda(X) (member(car X)'(420 430))) (entget(ssname aws n))) objList (append objList (list '(420 . 15856094) '(430 . "PANTONE+ Pastels & Neons Coated$PANTONE 9064 C")))) (entmod objList) (setq n (+ n 1))) (command "_.hatchtoback")) ) (princ))
Am Ende des Befehls steht: 5 Schraffurobjekt(e) werden nach hinten gesetzt. Ich habe aber 2 SOLIDS und 3 ANSI Schraffuren in meiner Test Zeichnung. (if (setq aws (ssget "_X" (list (cons 2 "SOLID")))) -> wählt nur SOLID aus Die Farbe ändert er nur bei den SOLIDS wie es sein soll, aber er soll auch nur die SOLIDS nach hinten legen... Der Befehl legt immer wieder alle Schraffuren nach hinten... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 06. Feb. 2020 13:47 <-- editieren / zitieren --> Unities abgeben: Nur für Manuel486
|
Meldin Mitglied
Beiträge: 381 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 06. Feb. 2020 15:05 <-- editieren / zitieren --> Unities abgeben: Nur für Manuel486
Hier mal was zum Testen. Code: (defun c:test (/) (if (setq AWSHatch (ssget "_X" (list (cons 0 "HATCH")))) (progn (foreach teil (mapcar 'cadr (ssnameX AWSHatch)) (setpropertyvalue teil "Color" "9") ) (command "draworder" AWSHatch "" "unten") ) ) (setq AWSHatch nil) (if (setq AWSHatch (ssget "_X" (list (cons 0 "HATCH") (cons 2 "SOLID")))) (progn (foreach teil (mapcar 'cadr (ssnameX AWSHatch)) (setpropertyvalue teil "Color" "PANTONE+ Pastels & Neons Coated,PANTONE 9064 C") ) (command "draworder" AWSHatch "" "unten") ) ) )
------------------ Gruß Wolfgang [Diese Nachricht wurde von Meldin am 07. Feb. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Manuel486 Mitglied Technischer Zeichner Elektro
Beiträge: 194 Registriert: 31.01.2020
|
erstellt am: 12. Feb. 2020 16:21 <-- editieren / zitieren --> Unities abgeben:
|