| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Effiziente Datenmigration trifft nahtlose Systemintegration , ein Anwenderbericht
|
Autor
|
Thema: autocad 2006 script (903 mal gelesen)
|
Igor1986 Mitglied
Beiträge: 77 Registriert: 21.09.2006
|
erstellt am: 27. Okt. 2006 13:53 <-- editieren / zitieren --> Unities abgeben:
hallo! ich schreibe gerade zum ersten mal ein script für autocad. die schritte sind diese: 1)layer temp erstellen 2) layer temp als aktiv setzen 3) layer 0, x ,y ausblenden 4) alle nicht ausgeblendeten linien löschen 5) zeichnung bereinigen 6) layer 0, x ,y einblenden 7)layer 0 als aktiv setzen 8) layer temp löschen 9) speichern 10) schließen punkte die ich nicht kann: 4, 5, 8, 9 (zu punkt 9: wenn ich _qsave verwende und die datei als dxf speichere dann fragt acad ob ich die zeichnung im normalen format abspeichern will... und das bekomme ichmit der automatisierung nicht weg.) mein problem ist dass meine version von acad 2006 deutsch ist und ich im internet dnur die englischen befehle finde... die leidermit der deutschen version nicht funktionieren... kann mir bitte jemand helfen? danke 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: 27. Okt. 2006 16:00 <-- editieren / zitieren --> Unities abgeben: Nur für Igor1986
Hi, Du kannst in Scripten und Lisp auch die englischen Befehle nutzen. Einfach vor den Befehlsnamen ein "Underline" schreiben. Also statt "circle" -> "_circle" Das gleiche mit den Optionskürzeln. z.B. bei Option "lo" für >lock< im Befehl Layer einfach "_lo" eintragen und das rennt auch im deutschen Acad. Leider vergessen die Amis immer die Internationalisierung . Desweiteren ist die Übersetzung von englischen Befehlsnamen zu den der aktuell installierten Sprachversion und umgekehrt relativ einfach. Die Lisp Funktion "getcname" erledigt das. Beispiel: Code: (getcname "kreis") -> "_circle"(getcname "_circle") -> "kreis"
Bei englischen Befehlen ist aber auf jeden Fall der Underliner vor den Befehlsnamen zu setzen. Leider hilft getcname NICHT bei der Übersetzung von OPTIONSKÜRZELN :-( Aber ich glaube auf www.cadmaro.de ist 'ne Übersicht zu finden. Grundsätzlich würde ich das was Du da im Script vorhast in Lisp realsieren. Das ist flexibler und effektiver und nebenbei lernst Du gleich etwas was Du später für deutlich komplexere Dinge; die mit Scripts nicht mehr zu erledigen sind; gebrauchen kannst. ------------------ Ciao, Marc 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: 27. Okt. 2006 16:08 <-- editieren / zitieren --> Unities abgeben: Nur für Igor1986
Zitat: Original erstellt von Igor1986:
... 9) speichern 10) schließen
Hört sich für mich fast an, als ob Du dieses Script auf'n Haufen DWG's losjagen willst. Mit ScriptPro (kostenlos von ADesk erhältlich in den MigrationTools) kannst Du 'n Script (welches auch Lisp-Code bzw. Lisp-Aufrufe enthalten kann) auf 'ne beliebige Anzahl DWG's losjagen. Da brauchst Du Dich dann nur noch darum kümmern in welchem Format die Datei gespeichert werden soll (zu finden in den SampleScripts). Das öffnen, Script ausführen und schließen übernimmt ScriptPro. ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Igor1986 Mitglied
Beiträge: 77 Registriert: 21.09.2006
|
erstellt am: 28. Okt. 2006 08:24 <-- editieren / zitieren --> Unities abgeben:
hi! vielen dank für deine hilfe! ich hab das script in 2 teile geteilt.. erstes script bis punkt 8, dann wird die zeichnung durchgecheckt und dann wird script 2 (punkt 9 und 10) ausgeführt... hab das so realisiert: script 1:
Code: layer n temp se temp FR 0 FR IV_INTERIOR_PROFILES FR IV_OUTER_PROFILE_erase ALLE layer T * se 0 _purge al * n
script2:
Code: _qsave _close
die beiden scripts habe ich einer taste zugeordnet... geht relativ schnell und einfach... mit autocad arbeite ich SEHR selten.. ca 1% meiner arbeitszeit deshalb hat es nicht viel sinn etwas neues dazu zu lernen da ich es sicher so wenig verwende das ich das sehr schnell vergesse...bin so ein inventor typ... trotzdem vielen dank für deine hilfe.. ich verpasse dir ein wenig unities.. ciao aus italien.. [Diese Nachricht wurde von Igor1986 am 28. Okt. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Igor1986 Mitglied
Beiträge: 77 Registriert: 21.09.2006
|
erstellt am: 28. Okt. 2006 10:06 <-- editieren / zitieren --> Unities abgeben:
|
Werner-Maahs.de Mitglied CAD-Dozent + Konstrukteur + Autor
Beiträge: 626 Registriert: 04.05.2005 Win XP AC 2005/6 AC 2013
|
erstellt am: 28. Okt. 2006 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für Igor1986
Auch wenn Du es vielleicht nicht brauchst, es lesen ja noch andere mit. Einen Layer zu erstellen und aktiv zu setzen, kannst Du in einem Schritt erledigen. Verwende dazu einfach die Option M für Machen. Dies ist gleichbedeutend mit Neu und SEtzen. Einziger Punkt der dabei zu beachten ist: Mit der Option Neu kannst Du mehrere Layer in einem Arbeitsgang erstellen, werden die Option Machen nur einen einzigen Layer erzeugen kann. Um Dein Beispiel aufzugreifen: Code:
-LAyer Machen temp FR 0 FR IV ...
------------------ strukturiertes Zeichnen mit www.Werner-Maahs.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Igor1986 Mitglied
Beiträge: 77 Registriert: 21.09.2006
|
erstellt am: 28. Okt. 2006 13:48 <-- editieren / zitieren --> Unities abgeben:
|