| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| CIDEON Whitepaper: Collaboration mit optimiertem Daten- und Projektmanagement, ein Whitepaper
|
Autor
|
Thema: befehl ursprung in skript-Datei (2099 mal gelesen)
|
sandra4053 Mitglied Technische Zeichnerin
Beiträge: 53 Registriert: 17.12.2003
|
erstellt am: 30. Jan. 2004 16:12 <-- editieren / zitieren --> Unities abgeben:
|
j-sc Ehrenmitglied
Beiträge: 1838 Registriert: 14.07.2003 W7 64Bit intel core I7 2,8GHz / 4GB ATI FIRE PRO V5800 acad2011 acad2015 acad2018 Athena Expresstools
|
erstellt am: 30. Jan. 2004 16:21 <-- editieren / zitieren --> Unities abgeben: Nur für sandra4053
Hallo, ich glaube irgendwo mal gelesen zu haben, dassder Befehl Ursprung in Skripten nur mit einem Element als Auswahl funktioniert. Dürfte über die Suche hier im Forum zu finden sein, war schon mal Thema. Ciao J-SC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 30. Jan. 2004 16:23 <-- editieren / zitieren --> Unities abgeben: Nur für sandra4053
.. ursprung geht in scripten nur mit einem Objekt.. ..schau mal hier :http://ww3.cad.de/foren/ubb/Forum54/HTML/005092.shtml oder um Cadchup direkt zu zitieren : "_explode" verhält sich, wie Du schon gesagt hast, in Lisp etwas anders als in AutoCAD selbst. Es kann nur einzelne Elemente auflösen. Deshalb dürft's so gehen: (setq Index -1) (repeat (sslength (setq aws (ssget "_X" '((0 . "DIM*"))))) (command "_.explode" (ssname aws (Setq Index (1+ Index))) ) ) Thomas ------------------ [Diese Nachricht wurde von CADmium am 30. Jan. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sandra4053 Mitglied Technische Zeichnerin
Beiträge: 53 Registriert: 17.12.2003
|
erstellt am: 30. Jan. 2004 16:39 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 30. Jan. 2004 16:44 <-- editieren / zitieren --> Unities abgeben: Nur für sandra4053
Oh, sorry! Na klar gibt's die : Speicher dir das hier als *.lsp - Datei , lade sie in ACAD und rufe sie dann mit explode_all auf : (defun c:explode_all ( / INDEX AUSWAHLSATZ) (setq Index -1) (repeat (sslength (setq AUSWAHLSATZ (ssget "_X" '( (0 . "DIM*")(0 . "INSERT")(0 . "LWPOLYLINE") (0 . "POLYLINE") ))) ) (command "_.explode" (ssname AUSWAHLSATZ (Setq Index (1+ Index))) ) ) ) Für verschachtelte Blöcke mit einmal auflösen habe ich auch noch was... P.S. Um was für Elemente handelt es sich eigentlich, die du auflösen willst? Nähere Infos vereinfachen die Sache!
Gruß Thomas
[Diese Nachricht wurde von CADmium am 30. Jan. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sandra4053 Mitglied Technische Zeichnerin
Beiträge: 53 Registriert: 17.12.2003
|
erstellt am: 30. Jan. 2004 17:11 <-- 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: 31. Jan. 2004 20:46 <-- editieren / zitieren --> Unities abgeben: Nur für sandra4053
Hi, ich korrigiere mal ganz keck : (defun c:explode_all (/ INDEX AUSWAHLSATZ) (setq Index -1) (repeat (sslength (setq AUSWAHLSATZ (ssget "_X" '((-4 . "<OR") (0 . "DIM*") (0 . "INSERT") (0 . "LWPOLYLINE") (0 . "POLYLINE") (-4 . "OR>") ) ) ) ) ) (command "_.explode" (ssname AUSWAHLSATZ (Setq Index (1+ Index))) ) ) Gruß CADchup ------------------ www.cadditions.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 02. Feb. 2004 08:25 <-- editieren / zitieren --> Unities abgeben: Nur für sandra4053
Hi, keck korrigiert und Fehler eingebaut :-)... Hier noch mal in funktionierend: Code:
(defun C:EXPLODE_ALL (/ INDEX AUSWAHLSATZ OBJFILTER ASLENGTH) (setq OBJFILTER (cons 0 "DIM*,INSERT,*POLYLINE,HATCH")) (if (not (setq AUSWAHLSATZ (ssget "_I" (list OBJFILTER)))) ;_ wenn kein pickset vorh. (progn (initget "Ja Nein") (setq QUEST (getkword "\nAuflösen über die gesamte Zeichnung? [Ja/Nein] <Nein>: " ) ;_ end of getkword ) ;_ end of setq (if (not QUEST) (setq QUEST "Nein") ) ;_ end of if (if (= QUEST "Nein") (princ "\nOk, dann eben nicht...") (progn (setq AUSWAHLSATZ (ssget "_X" (list OBJFILTER))) ; nimm alle (if AUSWAHLSATZ (progn (setq INDEX -1 ASLENGTH (sslength AUSWAHLSATZ) ) ;_ end of if (repeat ASLENGTH ;_ end of sslength (command "_.explode" (ssname AUSWAHLSATZ (setq INDEX (1+ INDEX))) ) ;_ end of command ) ;_ end of repeat (princ (strcat "\n>> " (itoa ASLENGTH) " << Objekt(e) aufgelöst. " ) ;_ end of strcat ) ;_ end of princ ) ;_ end of progn (princ "\nKeine auflösbaren Objekte gefunden!") ) ;_ end of if ) ;_ end of progn ) ;_ end of if ) ;_ end of progn ) ;_ end of if (princ) )
Es werden aufgrund des Objektfilters natürlich nur Bemassungen, Polylinien, Blöcke und Schraffuren aufgelöst (was gibt es noch??). ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sandra4053 Mitglied Technische Zeichnerin
Beiträge: 53 Registriert: 17.12.2003
|
erstellt am: 02. Feb. 2004 09:43 <-- editieren / zitieren --> Unities abgeben:
|
sandra4053 Mitglied Technische Zeichnerin
Beiträge: 53 Registriert: 17.12.2003
|
erstellt am: 02. Feb. 2004 09:51 <-- editieren / zitieren --> Unities abgeben:
zu früh gefreud!!! bei der frage "alle auflösen" ist irgendwie ein fehler. befehl lässt sich aber trotzdem durchführen. Problemist aber: die objekte sind nach beenden nicht aufgelöst!!! also, befehl umsonst. und nun. mach ich was falsch??? sandra Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 02. Feb. 2004 09:55 <-- editieren / zitieren --> Unities abgeben: Nur für sandra4053
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 02. Feb. 2004 10:11 <-- editieren / zitieren --> Unities abgeben: Nur für sandra4053
|
sandra4053 Mitglied Technische Zeichnerin
Beiträge: 53 Registriert: 17.12.2003
|
erstellt am: 02. Feb. 2004 10:11 <-- editieren / zitieren --> Unities abgeben:
anbei mal ne dwg. hab den befehl noch nicht im skript eingetragen. hab die lsp im autocad gelagen und den befehl "explode_all" in die befehlszeile geschrieben. arbeite den befehl ab. explode ist aber am ende nichts. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 02. Feb. 2004 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für sandra4053
Naja im Textfenster kannst du ja nachlesen woran es liegt, ein Layer ist gesperrt ! - Marc müßte nun wissen: gesperrter Layer= ebenfalls explode oder nicht ??? ------------------ - Sebastian Mattis - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sandra4053 Mitglied Technische Zeichnerin
Beiträge: 53 Registriert: 17.12.2003
|
erstellt am: 02. Feb. 2004 10:24 <-- editieren / zitieren --> Unities abgeben:
ja danke, ist ja super peinlich. wenn ich die bemaßung angeklickt habe war dieser ja nicht gesperrt. aber wie so oft denkt man ans einfachste nicht. natürlich funktioniert es jetzt. werde die lsp so verwenden. entsperren kommt im skript vor dem auflösen. danke grüße sandra Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 02. Feb. 2004 10:26 <-- editieren / zitieren --> Unities abgeben: Nur für sandra4053
Hi Sandra, na ja mit dem Sperren biste ja selbst drauf gekommen. Ich hab' das mal im Lisp eingebaut... Code:
(defun C:EXPLODE_ALL (/ INDEX AUSWAHLSATZ OBJFILTER ASLENGTH) (command "_.-layer" "_thaw" "*" "_unlock" "*" "_on" "*" "") (setq OBJFILTER (cons 0 "DIM*,INSERT,*POLYLINE,HATCH")) (if (not (setq AUSWAHLSATZ (ssget "_I" (list OBJFILTER (cons 410 (getvar "ctab"))) ) ;_ end of ssget ) ;_ end of setq ) ;_ wenn kein pickset vorh. (progn (initget "Ja Nein") (setq QUEST (getkword "\nAuflösen über die gesamte Zeichnung? [Ja/Nein] <Nein>: " ) ;_ end of getkword ) ;_ end of setq (if (not QUEST) (setq QUEST "Nein") ) ;_ end of if (if (= QUEST "Nein") (princ "\nOk, dann eben nicht...") (progn (setq AUSWAHLSATZ (ssget "_X" (list OBJFILTER (cons 410 (getvar "ctab"))) ) ;_ end of ssget ) ; nimm alle (if AUSWAHLSATZ (progn (setq INDEX -1 ASLENGTH (sslength AUSWAHLSATZ) ) ;_ end of if (repeat ASLENGTH ;_ end of sslength (command "_.explode" (ssname AUSWAHLSATZ (setq INDEX (1+ INDEX))) ) ;_ end of command ) ;_ end of repeat (princ (strcat "\n>> " (itoa ASLENGTH) " << Objekt(e) aufgelöst. " ) ;_ end of strcat ) ;_ end of princ ) ;_ end of progn (princ "\nKeine auflösbaren Objekte gefunden!") ) ;_ end of if ) ;_ end of progn ) ;_ end of if ) ;_ end of progn ) ;_ end of if (princ) )
.. ------------------ Ciao, Marc [Diese Nachricht wurde von marc.scherer am 02. Feb. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sandra4053 Mitglied Technische Zeichnerin
Beiträge: 53 Registriert: 17.12.2003
|
erstellt am: 02. Feb. 2004 10:36 <-- editieren / zitieren --> Unities abgeben:
|