| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Befehl 'ursprung' im Script oder Lisp (2885 mal gelesen)
|
Cornelia Schroeter Mitglied CAD/PDM Manager
Beiträge: 250 Registriert: 11.01.2002 MDT6PP SP4, Compass TDM 4.30.4, ASM, Jobmgr 2.1, AutoVue 15, Myriad 6, ProE2001, Ilink 3.2, Cadenas PARTSolutions, WinNT4.0/Win2000, diverse Rechner (Dell, IBM), i.d.R. 1 GB RAM
|
erstellt am: 24. Sep. 2003 14:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Lispler, ich weiss nicht, ob ich einfach nur auf dem Schlauch stehe, auf jeden Fall komme ich nicht weiter: Ich moechte im Layout von MDT6-Dateien die Bemassungen per Script in automatisch ablaufenden Export-Jobs in den Ursprung zerlegen. Der Befehl 'ursprung' bzw. "._explode" reagiert in Scripts oder Lisp-Commandos aber anders als in MDT direkt. Ich wähle die Bemassungen also mit (ssget "X" '(0 . "DIMENSION")) aus. In MDT6 direkt kann ich nun mit 'ursprung' und 'vorher' die gewählten Bemassungen zerlegen ("Objekte wählen:"). In Scripts und Lisp-Ausdrücken akzeptiert der Befehl aber nur die Auswahloptionen 'letztes', 'alle' und 'gruppe' ("Objekt wählen:"). Wenn ich die Option 'alle' wähle, sagt MDT: "Das Objekt konnte nicht aufgelöst werden." Wenn ich aus den Bemassungen eine Gruppe bilde, wird nur jeweils das erste Objekt der Gruppe explodiert. Hat jemand eine Idee, wie ich hier weiterkomme? Auf Basis der Gruppenauswahl koennte ich ja vielleicht mit einer while-Schleife arbeiten. Aber geht's vielleicht auch einfacher? Vielen Dank schon einmal im voraus, Cornelia
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 24. Sep. 2003 14:42 <-- editieren / zitieren --> Unities abgeben: Nur für Cornelia Schroeter
|
Cornelia Schroeter Mitglied CAD/PDM Manager
Beiträge: 250 Registriert: 11.01.2002 MDT6PP SP4, Compass TDM 4.30.4, ASM, Jobmgr 2.1, AutoVue 15, Myriad 6, ProE2001, Ilink 3.2, Cadenas PARTSolutions, WinNT4.0/Win2000, diverse Rechner (Dell, IBM), i.d.R. 1 GB RAM
|
erstellt am: 24. Sep. 2003 14:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, vielen Dank schon einmal fuer deine Antwort. Deine Befehlsfolge zerlegt aber leider nur EINE Bemassung, warum auch immer. Ich moechte ALLE Bemassungen im Layout in den Ursprung zerlegen... Gruesse, Cornelia Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 24. Sep. 2003 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für Cornelia Schroeter
Hi, "_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))) ) ) Gruß CADchup ------------------ www.cadditions.de [Diese Nachricht wurde von CADchup am 24. September 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Cornelia Schroeter Mitglied CAD/PDM Manager
Beiträge: 250 Registriert: 11.01.2002 MDT6PP SP4, Compass TDM 4.30.4, ASM, Jobmgr 2.1, AutoVue 15, Myriad 6, ProE2001, Ilink 3.2, Cadenas PARTSolutions, WinNT4.0/Win2000, diverse Rechner (Dell, IBM), i.d.R. 1 GB RAM
|
erstellt am: 24. Sep. 2003 17:19 <-- editieren / zitieren --> Unities abgeben:
|
neo4matrix Mitglied
Beiträge: 152 Registriert: 15.01.2008 HP™ z2 Tower G4 Workstation mit Intel® Core™ i9-9900K 8x 3.6 GHz-5.0 GHz 32 GB Arbeitsspeicher 1 TB HP Z Turbo PCIe® SSD NVIDIA® Quadro® P2200 mit 5 GB RAM HP™ 24" LPS LED TFT 16:10 ZR2440w. Windows 10 Pro, 64 Bit AutoCAD 2019 Design Suite Standard, SP1, 64 Bit ecscad 2019, v19.1.0.20, 64 Bit Microstation v8 2004, 32 Bit MicroStation CONNECT Edition Update 11 Microsoft Office 365, 32 Bit Microsoft Visio 2013, 32 Bit
|
erstellt am: 02. Dez. 2016 18:28 <-- editieren / zitieren --> Unities abgeben: Nur für Cornelia Schroeter
ACHTUNG! Sie antworten auf einen Beitrag der bereits einen Bart hat! Ja, das weiss ich... Aber dieses Forum soll auch als Nachschlagewerk sein... Ich goolge z.B. so: "site:cad.de MeineSuche" In meinem Lisp wird zuerst abgefragt, ob es Bemassungen hat:
(if (/= nil (setq l (ssget "X" '((0 . "DIM*")))))(progn(setq Index -1)(repeat (sslength (setq aws (ssget "_X" '((0 . "DIM*")))))(command "_.explode"(ssname aws (Setq Index (1+ Index))))))) mfg neo
------------------ Welcome to the Real 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 Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.
|
erstellt am: 02. Dez. 2016 19:00 <-- editieren / zitieren --> Unities abgeben: Nur für Cornelia Schroeter
Zitat: Original erstellt von neo4matrix: (if (/= nil (setq ...
Nur gut, daß Axel das nicht mehr lesen muß . Anstelle von (if (/= nil irgendwas ... )) sollte man besser schreiben (if irgendwas ...) (Nur so als kleiner Tip zum Thema Stilfragen.) Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 02. Dez. 2016 19:16 <-- editieren / zitieren --> Unities abgeben: Nur für Cornelia Schroeter
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 02. Dez. 2016 21:35 <-- editieren / zitieren --> Unities abgeben: Nur für Cornelia Schroeter
Wenn man den Auswahlsatz an I gespeichert hat, braucht man nicht extra noch einen weiteren an AWS hängen. Was jedoch sinnvoll wäre: Die Filtereinschränkrung auf den aktuellen Bereich, denn ein Autocad-Befehl(command..) wird nur Objekte des aktuellen Bereiches akzeptieren, nehme ich auf der Couch liegend an. (if (setq AWS (ssget "_X" (list '(0 . "*DIM*)(cons 410 (getvar "CTAB"))))) mach was (princ "\nKeine Bemassung im aktuellen Bereich gefunden") )
------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|