| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: ANHEBEN aus Script erstellen (1086 mal gelesen)
|
Kaju Mitglied Student
Beiträge: 2 Registriert: 04.05.2009
|
erstellt am: 04. Mai. 2009 13:12 <-- editieren / zitieren --> Unities abgeben:
Hallo an die CAD-Gemeinde, ich habe ein kleines Script, in dem werden 3D-Splines gezeichnet. Nun möchte ich aus diesen Splines eine Oberfläche erstellen. Zur Zeit benutze ich den Befehl _loft und wähle dann nacheinander die Splines aus. Diese Arbeit möchte ich mir gerne sparen, indem ich den _loft Befehl bereits im Script vearbeite. Nun meine Frage: Wie kann ich per Script gezeichnete Splines im Befehl _loft identifizieren. Bzw. wie kann ich einer Spline einen Namen oder eine ID geben. Dass ich noch unerfahren bin im Umgang mit AutoCAD samt Script usw. muss ich wohl nicht erwähnen... Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mini Mitglied Tech. Zeichnerin
Beiträge: 13 Registriert: 06.12.2004
|
erstellt am: 04. Mai. 2009 19:09 <-- editieren / zitieren --> Unities abgeben: Nur für Kaju
Ich fürchte das geht gar nicht. Mein Tipp: laß die Finger von Splines, die machen nur Ärger, denn richtig verarbeiten kann man sie nicht. Ich weiß zwar nicht was du vor hast, aber kannst du nicht eine Polyline nehmen und angleichen, sieht optisch fast genauso aus und ist besser zu verarbeiten. Gruß Mini Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 04. Mai. 2009 19:51 <-- editieren / zitieren --> Unities abgeben: Nur für Kaju
|
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 05. Mai. 2009 10:11 <-- editieren / zitieren --> Unities abgeben: Nur für Kaju
Hi und herzlich willkommen, Zitat: Original erstellt von Kaju: Zur Zeit benutze ich den Befehl _loft und wähle dann nacheinander die Splines aus. Diese Arbeit möchte ich mir gerne sparen, indem ich den _loft Befehl bereits im Script vearbeite.Nun meine Frage: Wie kann ich per Script gezeichnete Splines im Befehl _loft identifizieren. Bzw. wie kann ich einer Spline einen Namen oder eine ID geben. Dass ich noch unerfahren bin im Umgang mit AutoCAD samt Script usw. muss ich wohl nicht erwähnen...
das ist mit AutoLISP-Code im Skript sicher möglich, allerdings lässt dein letzter Satz darauf schließen, dass es für dich nicht einfach sein dürfte. Die für jedes Objekt eindeutige ID kann man zum Beispiel mit (entlast) ansehen. Üblicherweise würde man die erzeugten Splines jeweils mit (setq lst (cons (entlast) lst)) in eine Liste packen, die am Ende dem Befehl _LOFT übergeben wird. Wichtig für LOFT ist natürlich die Reihenfolge der übergebenen Objekte, weshalb am besten schon die Splines in der richtigen Reihenfolge erzeugt und in der Liste abgelegt werden. Verwirrt? OK, dann hier weiterlesen ->Link Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 05. Mai. 2009 10:30 <-- editieren / zitieren --> Unities abgeben: Nur für Kaju
auf Script/Makro Basis falls es zu realisieren ist -ich selbst kenne die Funktion nicht-: Fragt der Befehl einen Auswahlsatz an Objekten ab ? (du hast geschrieben du wählst sie nacheinander, ich gehe davon aus das dies aber kein "muß" ist ?) hier hatt ich mal einen Gedanken geäußert wie man "alle neuen Elemente" wählen kann in einem Makro/Script:KLICK! Zudem gibt es noch einen Thread von USER:FAQ bezgl. Script&Makro, ist allerdings allgemein und (noch) ohne Beispiele. Aufbau des Scriptes also: ;-------------------------------------------------------------------------------- WAHL ALLE hier erstelle ich meine "neuen Objekte" WAHL ALLE ENTFERNEN _LOFT V und wie auch immer weiter - ich habe den Befehl nicht zur Verfügung, daher kann ich im Detail auch nicht weiterhelfen und du mußt selbst sehen wie man den Befehl abarbeiten muß in der Befehlszeile ;-------------------------------------------------------------------------------- ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 05. Mai. 2009 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für Kaju
|
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 05. Mai. 2009 10:49 <-- editieren / zitieren --> Unities abgeben: Nur für Kaju
Zitat: Original erstellt von cadffm: -ich selbst kenne die Funktion nicht-: Fragt der Befehl einen Auswahlsatz an Objekten ab?[/b][/URL]
-> F1 oder Befehlszeile: Zitat: Querschnitte in Reihenfolge der Erhebung auswählen:
Also nix mit Auswahlsatz. Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 05. Mai. 2009 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für Kaju
Zitat: Original erstellt von CADchup: -> F1 oder Befehlszeile:
Zitat: Original erstellt von cadffm: -ich selbst kenne die Funktion nicht-:
Zitat: Original erstellt von cadffm: ich habe den Befehl nicht zur Verfügung, daher kann ich im Detail auch nicht weiterhelfen und du mußt selbst sehen wie man den Befehl abarbeiten muß in der Befehlszeile
2006
------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kaju Mitglied Student
Beiträge: 2 Registriert: 04.05.2009
|
erstellt am: 18. Mai. 2009 18:32 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für Eure Hilfe, habe es nun geschafft. Hier mal meine Lösung: 1. Es wird eine Linie gezeichnet zB.: ------------------------------------- 3DPOLY 336.1294436016237,0,3.1168067571446203 352.2879209825457,3.6726440893499896,-3.8706932093891115 363.95983558979174,5.080689997440593,-16.026818618323617 371.321341588421,4.885103940300965,-37.59043861517228 2. Ich assoziiere diese Linie beispielsweise mit "s1": ------------------------------------------------------ (setq s1(entlast)) 1) und 2) wiederholt man bis zum letzten Querschnitt s1....sn um danach die Querschnitte zur Fläche zu verbinden 3. Loft ausführen: ------------------ _Loft !s1 !s2 !s3 . . !sn Geht bestimmt eleganter, aber es geht. Im Anhang ist mal ein Beispiel-Script. @CADchup: Hab es mit einer Liste versucht, aber nicht geschafft. Hab mich dann mit einer Bezeichnung in der Art s+i begnügt. Gruß. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 19. Mai. 2009 09:55 <-- editieren / zitieren --> Unities abgeben: Nur für Kaju
Hi, klingt gut! Musst natürlich immer hochzählen und den Überblick bei den Variablen behalten. Deshalb mein Listenvorschlag (setq lst (cons (entlast) lst)) anstelle deiner Einzelzuweisung. Das Ende des Skripts muss dann natürlich anders aussehen. Bisserl lispiger eben, weil die Listenbestandteile dem Loft-Befehl einzeln übergeben werden müssen:
Code:
... ... _loft (foreach i lst (command i)) (setq lst nil)
Gut möglich, dass du mit den Leerzeilen noch spielen musst, ich habe das nicht abschließend getestet. Am Ende (setq lst nil), damit die Liste wieder leer ist. Könnte ja sein, dass das Skript in dieser AutoCAD-Session nocheinmal gestartet wird. Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |