| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Script für Datenübergabe (2236 mal gelesen)
|
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 10. Jul. 2014 12:01 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum, ich bin dabei ein Script zu basteln, das ich immer wieder benötige, für eine Übergabe an externe Büros. Ich habe aber noch Fehler / Wünsche die ich nicht geklärt bekomme. --------------------------------------- ;Script zum xref binden, bereinigen, speichern _xref binden * _Purge ;löscht alle nicht benutzten Layer _Layer * n -layer entsperren * ;löscht alle nicht benutzten beschriftungsmaßstäbe -MSTABLISTEBEARB löschen * Beenden ;anzeigen aller Beschriftungsmaßstäbe ANNOALLVISIBLE 1 Sof_base_explodeall _saveas dxf 16 ;Saveas 2010? _regenall ; Skriptende ---------------------------------- 1.Wie kann ich alle nichtplaztierten Blöcke, unbenutzte Textile, Layer etc. auf einmal bereinigen? (_Purge) 2.nach sof_base_explodeall wird nicht mehr als DXF gespeichert, warum? (16 ist eine Abfrage der Einheiten...) 3.Kann ich die Datei gleichzeitig auch noch als Dwg2010 Speichern? Wie lautet die Scriptzeile? ( siehe Script ) 4.Gibt es ein Lisp das gefrorene und ausgeschaltete Layer löscht? (siehe Del_Lay_Frz_Off.lsp ) 5.Kann ich mehre Dateien über einen Scriptgenerator laufen lassen? (SIEHE FRAGE 2!) LG cockpit Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 10. Jul. 2014 12:12 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
servus Befehl dwg-konvertierung mach zwar nur einen teil ist aber recht brauchbar. ------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX [Diese Nachricht wurde von Bernd P am 10. Jul. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadwomen Ehrenmitglied V.I.P. h.c. Mädchen für fast alles
Beiträge: 3067 Registriert: 26.08.2002 ACAD R11 - 2022 (Plant3D) AVIS ACAD LT 2013- 2021 ZWCAD 2015 Versuch "nun ja" [s]History P3D 2012/(13) SP und Hotfix([/s]<P> Windows 10 / 64 Bit Xeon CPU 3.5GHz 16GB Ram NVIDIA Quadro P2000 3x Dell TV100 88P Monitore
|
erstellt am: 10. Jul. 2014 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
Hy zu 1) bereinige alles zu 2) warum ? nun ja Das Script fordert einen Anzahl von Stellen so geb ihn welche zu 3) ?? zu 4) Layer erst tauen ,entsperren und das vor bereinigen alles und alles ist gut zu 5) Ja nur wo ist der zusammenhand mit Frage 2 ? cu cw PS denke etransmit würde dir fiel davon abnehmen ;-)
------------------ Also ich finde Unities gut ... und andere sicher auch ------------------------------------------------ cadwomen™ Plant ist wie Öl suchen, je tiefer man bohrt desto mehr kommt ans Tageslicht 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: 10. Jul. 2014 12:34 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
1) tippe _.-PURGE ein, dann siehst du die Optionen, dort gibt es auch "ALLES", usw. 2) Kann ich nicht testen, an der Stelle hängt das Script bei mir, AutoCAD kennt keinen Befehl 'sof_base_explodeall' 2 b) Du benennst die Datei mit "_regenall", ist das so gewünscht ? 3) Script = AutoCAD-Befehl, also schau in der Hilfe nach welcher Befehl dir hilft. (Speichern,speichern unter etc) 4) Das hast du doch bereits mit dem Lisp, das macht genau das ! Du mußt nur hinterher bereinigen, also platziere dein "Purge All" ganz am Ende des Scriptes 5) Wir können, du nicht. Frage: Was hindert dich aktuell konkret daran ? (Zusammenhang mit Frage2 sehe ich auch nicht) ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 10. Jul. 2014 15:19 <-- editieren / zitieren --> Unities abgeben:
@ Bernd p ...ist keine Option @ cadwomen, @caddffm ich war unkonkret u hatte einiges vergessen zu 1) ...ok zu 2) Sof-base_explodall kommt von Soficad, zerschlage Soficad-objekte in Autocadobjekte (danach wird das script beendet, es wird nicht mehr in DXF gespeichert!)kläre ich mit der Soficadhotline 2b) nein, nur regenerieren! zu 3) gewollt ist speichern unter Dxf und Autocad2010 _saveas _saveas dxf 16 (16 ...-Einheiten (<--- zur Vollständigkeit)) zu 4) Del_Lay_Frz_off.lsp funktioniert bei mir nicht bzw. habe fehler, weil falsche Reihenfolge oder ähnl. ich probiere deinen Rat Cadffm "purge all" am ende aus zu 5) vertage ich auf später, erst muss das Script für eine Datei laufen "PS denke etransmit würde dir fiel davon abnehmen ;-)" Nur dwg!
Ich schreibe es um und melde mich später. Vielen Dank Cockpit 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: 10. Jul. 2014 15:34 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
zu 2) Sof-base_explodall oder wahlweise auch Sof_base_explodall ??? Beim Befehlsablauf bist du dir sicher ? Also Befehl + 2x Enter und dann steht Acad wieder am Befehlsprompt ? Geht es denn per Hand ? Also durchführen lassen und direkt speichern unter. zu 2b) _savas Dateiname Dann solltest du dein Makro so schreiben, denn du hast vergessen den Dateinamen anzugeben (bzw mit einem Enter zu bestätigen)
zu 3) da mußt du mal konkreter werden Und wie das geht kannst du ja in der Befehlszeile nachlesen. Acad zeigt dir doch alle Optionen des Befehls (Zum händischen Test: FILEDIA=0 stellen und dann kannst du _saveas auchin der Befehlszeile per Hand testen. zu 4) Del_Lay_Frz_off Da gilt dann wohl das gleiche: In der Befehlszeile wirst du von AutoCAD doch angeleitet was die Optionen sind und was Acad wissenwill, du muß doch nur mitschrieben..(und jedes Enter in der Befehlszeile mit einem Zeilenumbruch im Script übersetzen) zu 5) Richtig: Erst das eine und dann auf alle loslassen (Suchbegriff für später: SCC2 ) etransmit würde auch das Bereinigen und XRefs binden übernehmen, da dir das aber nicht ausreicht ist es im Grunde egal. Ist nur zur Info das du es weißt. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadwomen Ehrenmitglied V.I.P. h.c. Mädchen für fast alles
Beiträge: 3067 Registriert: 26.08.2002 ACAD R11 - 2022 (Plant3D) AVIS ACAD LT 2013- 2021 ZWCAD 2015 Versuch "nun ja" [s]History P3D 2012/(13) SP und Hotfix([/s]<P> Windows 10 / 64 Bit Xeon CPU 3.5GHz 16GB Ram NVIDIA Quadro P2000 3x Dell TV100 88P Monitore
|
erstellt am: 10. Jul. 2014 15:34 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
zu 3 filedia 0 saveas und dann was du willst ... wüste nicht warum sof explode all da das scrip abbrechen sollte , aber da ich seid Jahren kein Sofi mehr hab kann ich da nur vermuten cw ------------------ Also ich finde Unities gut ... und andere sicher auch ------------------------------------------------ cadwomen™ Plant ist wie Öl suchen, je tiefer man bohrt desto mehr kommt ans Tageslicht Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cockpit Mitglied Bauing.
Beiträge: 280 Registriert: 27.06.2008 Dell Precision T1700 Intel Core i7-4790 Core 3.60 GHz / 8 GB RAM Grafikkarte: AMD FirePro W4100 (FireGl V) Win 10 64 bit Acad 2018 / Soficad 2018 20.1
|
erstellt am: 11. Jul. 2014 12:07 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum, @Cadffm,cadwomen filedia 0 zum testen in der Befehlszeile war goldrichtig! Zu viele Fragen auf einen mühsam nachvollziehbaren Beitrag (beiderseits) ist schwierig, aber danke für Eure Hilfe. Ich versuche es jetzt einfacher zu machen. _etransmit ist eine gute Variante für Einzeldateien, ich vermute ich könnte sie auch im Script verwenden.(?) Script das jetzt durchläuft ------------------------------ ;Script zum xref binden, bereinigen und Datenübergabe _xref binden * -layer entsperren * ;löscht alle nicht benutzten beschriftungsmaßstäbe -MSTABLISTEBEARB löschen * Beenden ;anzeigen aller Beschriftungsmaßstäbe ANNOALLVISIBLE 1 ;löscht alle nicht benutzten Elemente _Purge Al * n _Purge Al * n _saveas dxf 16 _saveas 2010 ; Skriptende ------------------------------------ Was mir jetzt nur fehlt ist das einbinden der DEL_LAY_FRZ_OFF.lsp (Löschen der gefrorenen u ausgeschalteten Layer) In acad mit Anwendung laden lief zum Teil durch und löschte mir gut die Hälfte aller gefrorenen Layer. Im Script mit nachfolgenden Aufruf (den ich aus dem Forum habe) Ich habe s vor "_purg..." eingesetzt!!! -------------------------------------------------- (and(setq F(findfile "DEL_LAY_FRZ_OFF.lsp")) (/= "ERROR"(load F "ERROR")) (C EL_LAY_FRZ_OFF) ) L L --------------------------------------------------- das bringt im Script ein "nil" nothing in list und versteh ich zu wenig davon. (Da muss ein Fehler in den Zeilen sein?) Gibt es eine andere Variante? LG Pit [Diese Nachricht wurde von cockpit am 11. Jul. 2014 editiert.] [Diese Nachricht wurde von cockpit am 11. Jul. 2014 editiert.] 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: 11. Jul. 2014 12:17 <-- editieren / zitieren --> Unities abgeben: Nur für cockpit
Code: (if (and (setq F(findfile "DEL_LAY_FRZ_OFF.lsp")) (/= "ERROR"(load F "ERROR")) ) (C:DEL_LAY_FRZ_OFF) (alert "Ladefehler Del_Lay_Frz_off.lsp") )
Lädt die Lispdatei und führt sie aus (oder bringt eine Fehlermeldung das es nicht gefunden wurde) Mehr macht das ja nicht. Damit die Lispdatei gefunden wird, sollte sie in einem Supportpfad liegen (eigenen Supportpfad für Progrämmchen anlegen und als Supportpfad einrichten im Profil) TEST: (findfile "meinedatei.doc") Next: Das nur die Hälfte gelöscht wurde, kann nur am Programm bzw deiner Datei liegen. Um das am einfachsten heraus zu finden wäre ein Beispiel als DWG perfekt. Inhalt: Ein Objekt/Layer welches nicht gelöscht wird. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |