| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Auswahlsatz splitten (1325 mal gelesen)
|
Christian01 Mitglied Technischer Zeichner
Beiträge: 281 Registriert: 17.04.2007 Briscad V22 ACAD MAP 2019 Win 10 Pro 64bit Intel, 4x 3,0 GHz, 8GB RAM 2 x 24" TFT
|
erstellt am: 03. Jun. 2015 12:13 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe Community. Gibt es eine Möglichkeite einen Auswahlsatz nochmals zu splitten? Begründung: Der User soll Objekte über ein Fenster oder durch Einzelwahl (Picking) auswählen. Code:
(defun C:Test ( / ) (IF (setq AWS1 (ssget)) (progn (setq AWS2 --> Auswahlsatz2 aus Auswahlsatz2 bilden (ssget '((0 . "*LINE") (8 . "*Gasse*"))) ) (setq AWS3 --> Auswahlsatz3 aus Auswahlsatz1 bilden (ssget '((0 . "*LINE") (8 . "*Stra*"))) ) (.... Programmablauf auf AWS 2 & AWS 3 > Änderung von Layer > Änderung von Farbe > Änderung von Linienstärke ) ) (princ "\nTest hat nicht funktioniert.") (princ) ) ) (
Oder muss ich das anders machen. Das Problem ist das man die Objekte nur über ein Fenster auswählen kann und ich möchte diese aber auch einzeln Auswählen
Code: (IF (and (setq pt1 (getpoint "Punkt wählen")) (setq pt2 (getcorner pt1 "Punkt wählen")) (command "_zoom" pt1 pt2) ) (progn (setq AWS1 (ssget "_C" pt1 pt2 '((0 . "*LINE") (8 . "*Gasse*")))) (setq AWS2 (ssget "_C" pt1 pt2 '((0 . "*LINE") (8 . "*Stra*")))) (.... Programmablauf auf AWS 2 & AWS 3 > Änderung von Layer > Änderung von Farbe > Änderung von Linienstärke ) ) (princ "\nTest hat nicht funktioniert.") (princ) )
------------------ Grüße Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 03. Jun. 2015 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
Ich verstehe "das Ganze" noch nicht, daher mal ins Blaue geschrieben: (ssget) ist die AutoCAD-Objektwahl (ssget '((irgendeinFilter))) ist die Objektwahl mit einschränkungen nach Eigenschaften. In deinem Code ist eine KREUZEN-Wahl fest vorgegeben (ssget "_C" ....usw. Wenn du kein Kreuzen willst, dann lasse es doch? (siehe Hilfe F1 zu SSGET) Auswahlsätze splitten (wenn denn wirklich benötigt) gibt es nicht, man muß sich selbst Funktionen bauen die das können, man durchwandert dann einen Auswahlsatz und die Funktion erstellt dann 2 neuen Auswahlsätze (ssadd). Und nun noch mal bitte, Was ist das Problem / die Aufgabe ? ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 03. Jun. 2015 12:23 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
??? - ich versuchs trotzdem mal: (ssget '((... damit hat der Anwender die Möglichkeit über Fenster oder Einzelauswahl zu arbeiten .. also die Standard-Objektwahl von AutoCAD. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 03. Jun. 2015 12:32 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
|
Christian01 Mitglied Technischer Zeichner
Beiträge: 281 Registriert: 17.04.2007
|
erstellt am: 03. Jun. 2015 12:42 <-- editieren / zitieren --> Unities abgeben:
OK ich probiere es nochmals. Ich definier einen Auswahlsatz: (setq AWS (ssget)) Aus diesem Auswahlsatz AWS möchte ich 2 neue Auswahlsätze machen (AWS1 & AWS2) --> Ich Splitte den AWS in AWS1 & AWS2 Funktioniert das Splitten von definierten Auswahlsätzen mit der ssget- Funktion. Oder wie kann ich sonst den Auswahlsatz (AWS) splitten? Ich hoffe es ist jetzt verständlicher. Begründung: Mit ------------------ Grüße Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 03. Jun. 2015 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 03. Jun. 2015 13:00 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
Darauf hast du ja bereits antwort erhalten - Acad hat dafür keine Funktion, die mußt du selbst erstellen. SSADD erstellt einen leeren Auswahlsatz und kann Elemente zu einem Auswahlsatz hinzufügen (setq aws1 (ssadd) aws2 (ssadd))
(foreach Element AWS0 (if diesdadundjenes (ssadd Element aws1) (ssadd Element aws2) ) ) Funktionen zum splitten und zusammen führen von Auswahlsätzen findet man auch viele fertig im Netz, wenn du es aber selbst erstellst hast du den lernEffekt und verstehst dann auch was da passiert. )
------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 03. Jun. 2015 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für Christian01
.. ich denke, der Gedankenansatz, einen Auswahlsatz in 2 Auswahlsätze zu splitten) ist nicht ideal (es sei denn, du willst mit diesen Auswahlsätzen dann irgendwelche folgenden (Command-Aufrufe füttern). Lisp ist hervorragend geeignet (und auch dafür gedacht), Listen zu verarbeiten. Da ein Auswahlsatz keine Liste ist, sollte erstes Ziel sein,einen Auswahlsatz in eine Liste der Elemente des AWS zu überführen. Für die Verarbeitung derer gibt's dann einen ganzen Sack voller Funktionen. Der aus meiner Sicht bessere Ansatz wäre: 1) Auswahlsatz bilden 2) Elementliste aus Auswahlsatz bilden 3) Elementliste entsprechend der Eigenschaften der einzelnen Objekte splitten oder weiteren Bearbeitung zuführen. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |