| |
| 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: Automatisierung (1960 / mal gelesen)
|
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 08:40 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen zusammen, wir bearbeiten momentan ein Projekt , wo wir tausende Dateien PDF-en und Etransmit erstellen müssen. Ich wollte hierzu nun eine Automatisierung erstellen.Ich habe leider keine Ahnung von "LISP". Im Prinzip soll folgendes passieren. Layout "PDF" öffnen Zoom Grenzen Drucken wie vorgegeben Wechsel zu Modellbereich Zoom Grenzen Bereinigen Etransmit So nun hänge ich allerdings an der Optionswahl. Wie schaffe ich es, dass er auf den ersten Punkt "Übertragungspaket erstellen" springt? Es wäre auch schön wenn er beim PDF und Etransmit ,automatisch den Dateinamen als Speichernamen verwendet. Also Ohne den Layoutnamen am Ende bzw. bei Etransmit ohne das Wort "Standard". Das PDFen funktioniert schon gut soweit. Der Speicherort sollte bei beiden Sachen auch immer im Ordner der Zeichnung erfolgen Kann mir bitte jemand helfen? Leider führt er die Befehle durcheinander aus. Er nimmt das E bevor er es soll... Obwohl anders angegeben.
Meine Einstellung: (setvar "ctab" "PDF") (command "zoom" "g") (command "plot" "nein" "PDF" "*PDF*" "" "" "" "") (setvar "ctab" "Modell") (command "zoom" "g") (command "bereinig" "AL" "" "N" "") (command "pause" "500" "") (command "etransmit" "ja" "" "pause" "10000" "" "E") Das steht dann bei AutoCad: Befehl: E Unbekannter Befehl "E". Drücken Sie F1-Taste für Hilfe. Befehl: Befehl: Befehl: Befehl: _qsave Befehl: _-etransmit Felder werden aktualisiert... Option eingeben [übertragungspaket Erstellen/nur Bericht/aKtuelles installationsprogramm/installation Wählen] <nur Bericht>: _autoPublish Ungültiger Optionstitel. ------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2020 09:38 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
Servus, >"Das steht dann bei AutoCad:" Du solltest dir die ganze Rückgabe ansehen, dann sollten auch schon vorher Fehler ersichtlich werden. Immer Stück für Stück testen, bei CMDECHO=0 CMDECHO=1 und dann kontrollieren [F2]. Dann sieht man auch was bzw. wo es schief läuft.
Ich kann dem Versuch (command "etransmit" "ja" "" "pause" "10000" "" "E") nicht ganz folgen, aber auch schon vorherigen Eingaben nicht, dennoch: Das vorab ermitteln des Ablaufes in der Befehlszeile ist gut und schön, aber man muß dann auch in der Automatierung schauen was passiert, so gibt es hier das Problem das ACAD auf deinen Wunsch hin (Speichern JA) den Befehl beendet, deine weiteren Anweisungen feuern dann in die Befehlszeile "ohne aktiven Befehl" und das ergibt nichts Vernünftiges. ACAD speichert dann die Datei und startet den -Etransmit Befehl wieder Aber es gibt noch andere Baustellen, daher: Erstelle den letzen Teil ganz neu, alles nach der Zeile (command "zoom" "g") Die nächste Zeile sollte vermutlich (command "bereinig" "AL" "" "N") lauten und nicht wieder den Zoom Befehl starten wie in deiner Version!? Bevor du dann irgendwann Befehl: etransmit (bzw. -ETRANSMIT) startest, SPEICHER! Dadurch wird ein speichern im Etransmit-Ablauf nicht nötig, Acad beendet den Befehl nicht um zu speichern, das Chaos bleibt aus.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 12:19 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für deine Tipps. Es funktioniert jetzt erstmal so, wie ich es gern hätte. Nur wie bekomme ich die ganze Sache in einen Kurzbefehl? Also dass ich dann beispielsweise nur noch "BP40" eingeben muss und meine lisp abläuft? Kannst du mir da helfen? Ich hab echt null Ahnung von LISP. (setvar "ctab" "PDF") (command "zoom" "g") (command "plot" "nein" "PDF" "*PDF*" "" "" "" "") (setvar "ctab" "Modell") (command "zoom" "g") (command "bereinig" "AL" "" "N" "") (command "_qsave") (command "etransmit" "E" "" (setq name (getvar "DWGNAME")))
Zitat: Original erstellt von cadffm: Servus, >"Das steht dann bei AutoCad:" Du solltest dir die ganze Rückgabe ansehen, dann sollten auch schon vorher Fehler ersichtlich werden. Immer Stück für Stück testen, bei CMDECHO=0 CMDECHO=1 und dann kontrollieren [F2]. Dann sieht man auch was bzw. wo es schief läuft.
Ich kann dem Versuch (command "etransmit" "ja" "" "pause" "10000" "" "E") nicht ganz folgen, aber auch schon vorherigen Eingaben nicht, dennoch: Das vorab ermitteln des Ablaufes in der Befehlszeile ist gut und schön, aber man muß dann auch in der Automatierung schauen was passiert, so gibt es hier das Problem das ACAD auf deinen Wunsch hin (Speichern JA) den Befehl beendet, deine weiteren Anweisungen feuern dann in die Befehlszeile "ohne aktiven Befehl" und das ergibt nichts Vernünftiges. ACAD speichert dann die Datei und startet den -Etransmit Befehl wieder Aber es gibt noch andere Baustellen, daher: Erstelle den letzen Teil ganz neu, alles nach der Zeile (command "zoom" "g") Die nächste Zeile sollte vermutlich (command "bereinig" "AL" "" "N") lauten und nicht wieder den Zoom Befehl starten wie in deiner Version!? Bevor du dann irgendwann Befehl: etransmit (bzw. -ETRANSMIT) startest, SPEICHER! Dadurch wird ein speichern im Etransmit-Ablauf nicht nötig, Acad beendet den Befehl nicht um zu speichern, das Chaos bleibt aus.
------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 12:23 <-- editieren / zitieren --> Unities abgeben:
Achso und die beiden Zoom Befehle sind Absicht, da verlangt wird, dass sowohl das Layout , wie auch der Modellbereich so gespeichert wird. Wenn geöffnet wird, soll der Modellbereich passend gezoomt erscheinen. ------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2020 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
>>"wie bekomme ich die ganze Sache in einen Kurzbefehl? Also dass ich dann beispielsweise nur noch "BP40" eingeben muss und meine lisp abläuft?" Also bisher war "Lisp" eigentlich überhaupt kein (nötiges) Thema bei dem was du da machst, du gibst ja einfach nur eine Reihe von Befehlszeileneingaben zum besten, das geht auch ohne Lisp in Script und Macros. Zum definieren eines neuen Befehls sieht es schon anders aus. AktionMakroRecorder oder über Programmierung kann man seinem ACAD neue Befehle beibringen, in Lisp ist dafür die Funktion DEFUN zu nutzen. Vorher prüfen ob es bereits einen Befehl gibt mit dem Namen gibt dem gewünschten Befehlsnamen stellst du dann einfach c: vor. MeinBefehl => c:MeinBefehl Kannst du mir da helfen? Ich hab echt null Ahnung von LISP. (defun c:MeinBefehl nil (setvar "ctab" "PDF") (command "zoom" "g") (command "plot" "nein" "PDF" "*PDF*" "" "" "" "") (setvar "ctab" "Modell") (command "zoom" "g") ;(command "bereinig" "AL" "" "N" "") (command "_qsave") (command "etransmit" "E" "" (getvar "DWGNAME")) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 14:02 <-- editieren / zitieren --> Unities abgeben:
Super vielen Dank,so klappt es. Beim Aktionsrekorder hatte ich das Problem, dass er Etransmit einfach nicht genommen hat. Gibt es eigentlich eine Möglichkeit, dass er bei dem Befehl "getvar "DWGNAME" die Endung .dwg weg lässt? ------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 14:02 <-- editieren / zitieren --> Unities abgeben:
Super vielen Dank,so klappt es. Beim Aktionsrekorder hatte ich das Problem, dass er Etransmit einfach nicht genommen hat. Gibt es eigentlich eine Möglichkeit, dass er bei dem Befehl "getvar "DWGNAME" die Endung .dwg weg lässt? Und kannst du mir die Befehlszeile sagen, wenn ein Pfad auf Absolut steht, wie ich Ihn auf Relativ setzen kann? ------------------ AutoCad 2018 [Diese Nachricht wurde von Stefan-Schirge am 26. Okt. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2020 14:07 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
Zitat: Original erstellt von Stefan-Schirge: es eigentlich eine Möglichkeit, dass er bei dem Befehl "getvar "DWGNAME" die Endung .dwg weg lässt?
Nein, aber (substr (getvar 'DWGNAME) 1 (- (strlen (getvar 'DWGNAME)) 4)) (cadr (fnsplitl (getvar 'DWGNAME))) (vl-filename-base (getvar 'DWGNAME)) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 14:11 <-- editieren / zitieren --> Unities abgeben:
Ok, das probiere ich dann mal. Vielen vielen Dank Kannst du mir die Befehlszeile sagen, wenn ein Pfad auf Absolut steht, wie ich Ihn auf Relativ setzen kann? Danach lass ich dich auch in Ruhe ------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 14:20 <-- editieren / zitieren --> Unities abgeben:
Hmm so klappt es leider nicht, da kommt ein Fehler. Fehlermeldung: Befehl: ; Fehler: Falsch formatierte Liste in Eingabe Befehl: ; Fehler: Falsch formatierte Liste in Eingabe Befehl: Eingestellt: (defun c:bp4000 nil (setvar "ctab" "PDF") (command "zoom" "g") (command "plot" "nein" "PDF" "*PDF*" "" "" "" "") (setvar "ctab" "Modell") (command "zoom" "g") (command "bereinig" "AL" "" "N" "") (command "_qsave") (command "etransmit" "E" "") (vl-filename-base (getvar 'DWGNAME)) ------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2020 14:20 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
>>"Kannst du mir die Befehlszeile sagen, wenn ein Pfad auf Absolut steht, wie ich Ihn auf Relativ setzen kann?"Keine Ahnung wovon du redest, da fällt es schwer mit Antworten Womöglich hast du das Thema gewechselt ohne es dem Gegenüber mitzuteilen!? Wenn du es "per Hand" umsetzen kannst, dann solltest du diesen Weg beschreiben, das hilft uns dich zu verstehen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2020 14:22 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
EDIT ALLES WIEDER GELÖSCHT Korrigiere erst einmal deine Zeile (command "bereinig" "AL" "" "N" "") Da ist doch schon der erste Fehler drin.
Zitat: Original erstellt von cadffm: Servus, >"Das steht dann bei AutoCad:" Du solltest dir die ganze Rückgabe ansehen, dann sollten auch schon vorher Fehler ersichtlich werden. Immer Stück für Stück testen, bei CMDECHO=0 CMDECHO=1 und dann kontrollieren [F2]. Dann sieht man auch was bzw. wo es schief läuft.
Erstelle den letzen Teil ganz neu, alles nach der Zeile (command "zoom" "g")
Die nächste Zeile sollte vermutlich (command "bereinig" "AL" "" "N") lauten und nicht wieder den Zoom Befehl starten wie in deiner Version!?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 14:24 <-- editieren / zitieren --> Unities abgeben:
Also ich möchte noch eine Variable einbauen, dass wenn der Pfad einer Xref auf absoluter Pfad steht, dieser auf relativ geändert wird Das mit dem Dateinamen hat übrigens nicht geklappt ------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 15:02 <-- editieren / zitieren --> Unities abgeben:
Wieso Fehler? Ich bin die Schritte Stück für Stück durchgegangen. Funktioniert auch. Habe es eben nochmal getestet. Zitat: Original erstellt von cadffm: EDIT ALLES WIEDER GELÖSCHTKorrigiere erst einmal deine Zeile (command "bereinig" "AL" "" "N" "") Da ist doch schon der erste Fehler drin.
------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2020 15:03 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
Auch bin ich mir nicht so sicher ob die Plot-Sequenz sauber+wie gewollt durchlaufen wird.
Zitat: Original erstellt von Stefan-Schirge: Also ich möchte noch eine Variable einbauen, dass wenn der Pfad einer Xref Wir reden von einer DWG?[i]auf absoluter Pfad steht, dieser auf relativ geändert wird Wie machst du das denn über die Befehlszeile, oder redest du von Etransmit? Aber auch da gibt es diese Option nicht direkt!? Falls ich nicht gerade den Wald vor lauter Bäumen nicht sehen.. liest es sich so als ob du etwas möchtest was das Problem überhaupt nicht kann!? Falls doch, zeige uns doch bitte wie du das über die Befehlszeile machst, genau so würdest du es dann auch in deine Zeilen einbauen können. Falls es das aber doch nicht gibt, dann brauchst du ein Zusatzprogramm >>Das mit dem Dateinamen hat übrigens nicht geklappt Deine Frage habe ich mit drei verschiedenen Varianten Beantwortet, alle drei liefern das erfragte Ergebnis. Was auch immer du versucht hast, es liegt nicht an dem Code zur Angabe des Dateinamen(oder Dateinamenerweiterung) [/i]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 16:28 <-- editieren / zitieren --> Unities abgeben:
Nein es ist eine immer eine Tiff-Datei (Bilddatei). Genau da liegt mein Problem, ich weiß nicht, wie ich das über Befehle lösen soll. Wenn es nicht geht ,dann ist es so. Du hast mir schon so super geholfen. Danke dafür. Die Plot Sequenz läuft auch durch. Funktioniert alles so wie gewollt. Habe es an mehreren Dateien getestet. Nur das mit dem Dateinamen macht mich stutzig. Ich habe deinen Befehl so kopiert und eingefügt. Also habe es mit allen 3 probiert. aber es geht nicht. Habe ich einen Fehler in der entsprechenden Zeile drin? So ist es mit deinem Befehl: (defun c:bp4000 nil (setvar "ctab" "PDF") (command "zoom" "g") (command "plot" "nein" "PDF" "*PDF*" "" "" "" "") (setvar "ctab" "Modell") (command "zoom" "g") (command "bereinig" "AL" "" "N" "") (command "_qsave") (command "etransmit" "E" "" (substr (getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 4) So war es vorher, wo noch die .dwg Endung mit ausgeworfen wurde, aber funktioniert hat: (defun c:BP4 nil (setvar "ctab" "PDF") (command "zoom" "g") (command "plot" "nein" "PDF" "*PDF*" "" "" "" "") (setvar "ctab" "Modell") (command "zoom" "g") (command "bereinig" "AL" "" "N" "") (command "_qsave") (command "etransmit" "E" "" (getvar "DWGNAME")) ) Zitat: Original erstellt von cadffm: Auch bin ich mir nicht so sicher ob die Plot-Sequenz sauber+wie gewollt durchlaufen wird.
------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2020 16:46 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
Ich bin für ein paar Minuten unterwegs und melde mich gleich wieder. Was ist denn mit meiner letzten Antwort passiert? Da ging was schief, SO war die Antwort nicht gedacht. Passiert.. ich schaue es mir gleich noch mal an.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 26. Okt. 2020 17:01 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2020 18:00 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
Mit redir kannst du Pfade ändern, aber dafür mußt du den neuen Pfad kennen (bzw. angeben können), wenn das der Fall ist kannst du REDIR nutzen. Jetzt noch einmal in Ruhe zu deinen Zeilen.. 1. Teste jeden Schritt einzeln und prüfe das dann auch. Da du mit (command Befehle steuerst wird die Rückgabe im Textfenster evtl. unterdrückt, daher schalte CMDECHO auf 1 wärend du am basteln bist. Wie bereits erwähnt solltest du dann bereits bei der PLOT Anweisung sehen: Da läuft was falsch! (das Wechseln auf das Layout und wieder zurück sollte übrigens unnötig sein, nur für RTEXT und SchriftFelder kann ich ohne es zu testen nicht die and ins Feuer legen) Lasse (nur) die PLOT Anweisung laufen und lese nach [F2] Also: Stelle CMDECHO auf 1 Wechsel auf das Layout "PDF" (aber nur du dies vorher so machst mit ctab) und dann kopiere deine (Command "plot" ....) Zeile in die Befehlszeile. Dann lese nach wie der Ablauf erfolgte [F2] Wenn widererwartend alles sauber aussieht, dann kopiere uns doch den Teil ab einschließlich Zeile Befehl: (command "plot ....)" bis einschl. der ersten leeren Zeile "Befehl:" aus deinem Textfenster in die nächste Antwort hinein. 2. Dann kommt die Zeile mit (command "bereinig" ....)
"Wieso Fehler? Ich bin die Schritte Stück für Stück durchgegangen." "Habe es eben nochmal getestet." Schau geneuer hin wenn du das Problem nicht erkennen kannst.. Mache es noch einmal, am besten beide Methoden: 1x den aktuellen Ausdruck testen wie du ihn nutzt und das Ergebnis prüfen und 1x "einfach einmal komplett neu machen" Beide Methoden sollten dich über ein Problem stolpern lassen. "Funktioniert auch." Funktionieren und sauber durchlaufen/sauber funktionieren - das können zwei Unterschiedliche Dinge sein! Das eine ist ZUFALL (abhängig von dem davor+danach in der Befehlskette und auch abhänig von der aktuellen Datei das andere ist richtig und funktioniert immer(und das möchte man ja). 2a) Zeichne mal einen KREIS, drücke zur Vorsicht mal [ESC] und kopiere deine Zeile (command "bereinig" "AL" "" "N" "") in die Befehlszeile.* AutoCAD sollte in der Befehlszeile danach folgendes anzeigen: Befehl: Wenn es widererwartend so ist bei dir, dann kopiere uns doch den Teil ab einschließlich Zeile Befehl: (command "bereinig ....)" bis einschl. der ersten leeren Zeile "Befehl:" aus deinem Textfenster in die nächste Antwort hinein. 2b) Die Variante mit einmal Neu schreiben. Erstelle mal bitte eine Linie, dann drücke vorsichtshalber noch [ESC] Nun zum Vorgehen Entweder ohne (command-Gedöns, dann mußt du den Befehl -bereinig starten oder direkt in einem (command ...). Am besten das Textfenster öffnen und los für die erste Eingabe dann Befehl: -bereinig<enter> bzw. Befehl: (command "-bereinig")<enter> Das funktioniert, also weiter: Befehl: AL<enter> bzw. abbrechen und Befehl: (command "-bereinig" "AL")<enter> Das funktioniert, also weiter: Befehl: <enter> bzw. abbrechen und Befehl: (command "-bereinig" "AL" "")<enter> Das funktioniert, also weiter: Befehl: N<enter> bzw. abbrechen und Befehl: (command "-bereinig" "AL" "" "N")<enter> An dieser Stelle sieht doch deine Befehlszeile so aus, oder? Befehl: Der Befehl -bereinig ist vollkommen durchlaufen und hat gemacht was er soll? In deiner Variante startest du jetzt aber den letzten Befehl neu, also: Befehl: <enter> bzw. abbrechen und Befehl: (command "-bereinig" "AL" "" "N" "")<enter> Wie schaut es jetzt aus? Soll das so sein Dateiname: "Habe ich einen Fehler in der entsprechenden Zeile drin?" Ja, du hast nicht (getvar "DWGNAME") gegen eine meiner drei Varianten getauscht, sondern dabei noch eine weitere schließende Klammer gelöscht, oder gar zwei davon*
*zumindest ist das ein offensichtlicher Fehler den ich sehe. Leider hast du nur geschrieben " Code: (defun c:TEST nil (command "_qsave") (command "etransmit" "E" "" (substr (getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 4))) ) gleiches Codebeispiel, anders in Szene gesetzt (defun c:TEST nil ; startet defun-Anweisung (command "_qsave") ; startet command-Anweisung ( und schließt diese auch wieder ) (command "etransmit" "E" "" ; startet command-Anweisung ( (substr ; startet substr-Anweisung ( (getvar "DWGNAME") ; startet getvar-Anweisung ( und schließt diese auch wieder ) 1 (- ;startet subtr.-Anweisung ( (strlen ;startet strlen-Anweisung ( (getvar "DWGNAME") ;startet getvar-Anweisung ( und schließt diese auch wieder ) ) ;schließt strlen-Anweisung ) 4 ) ;schließt subtr.-Anweisung ) ) ;schließt substr-Anweisung ) ) ;schließt command-Anweisung ) ) ;schließt defun-Anweisung )
Alle geöffneten Klammern sind somit wieder (and der richtigen Stelle) geschlossen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 27. Okt. 2020 07:00 <-- editieren / zitieren --> Unities abgeben:
ICh kann redir nutzen, da unsere Tiff's immer bei den DWG`s liegen müssen. Daher sollte das klappen Anbei mal alles aus dem Befehlsfenster. Ich sehe da jetzt erstmal nichts, was verkehrt läuft. Wie gesagt die LISP ist projektbezogen, da die Blattvorlagen und Ploteinstellungen immer wieder dieselben sind. Anbei meine aktuelle LISP: Sieht erstmal soweit alles gut aus, denke ich (defun c:bp4000 nil (setvar "ctab" "PDF") (command "zoom" "g") (command "plot" "nein" "PDF" "*PDF*" "" (substr (getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME") ) 4 ) ) "" "") (setvar "ctab" "Modell") (command "zoom" "g") (command "bereinig" "AL" "" "N") (load "REDIR" (bns_redir "*" ".")) (command "_qsave") (command "etransmit" "E" "" (substr (getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME") ) 4 ) ) ) ) Anbei der Bericht Befehl: BP4000 Regeneriert Layout. Regeneriert Modell. zoom Fensterecke angeben, Skalierfaktor eingeben (nX oder nXP) oder [Alles/Mitte/Dynamisch/Grenzen/Vorher/FAktor/FEnster/Objekt] <Echtzeit>: g Befehl: plot Detaillierte Plotkonfiguration? [Ja/Nein] <Nein>: nein Layoutnamen eingeben oder [?] <PDF>: PDF Namen für Seiteneinrichtung eingeben <>: *PDF* Bereits in PDF. Aktuelle Konfiguration verwenden. Ausgabegerätname eingeben oder [?] <A3.2_DWG To PDF_297x594.pc3>: Dateiname angeben <C:\bp 4.0\Wurmlingen\Revision 2020\2940033687-PDF.pdf>: 2940033687 Änderungen an der Seiteneinrichtung speichern [Ja/Nein]? <N> Plotten fortsetzen [Ja/Nein] <J>: Tatsächlicher Plotbereich: 297.00 breit und 594.00 hoch Tatsächlicher Plotbereich: 296.93 breit und 593.94 hoch Ansichtsfenster 2 wird geplottet. Ansichtsfenster 1 wird geplottet. Befehl: Regeneriert Modell. zoom Fensterecke angeben, Skalierfaktor eingeben (nX oder nXP) oder [Alles/Mitte/Dynamisch/Grenzen/Vorher/FAktor/FEnster/Objekt] <Echtzeit>: g Befehl: bereinig Typ der zu bereinigenden ungenutzten Objekte eingeben [BLöcke/Detailansichtsstile/BEmstile/Gruppen/LAyer/LTypen/MAterialien/MUlti-führungslinienstile/Plotstile/Symbole/Textstile/Mlinienstile/schnIttansichtsstile/tabellENstile/Visuellestile/Regappl/Nulllängengeometrie/leere teXtobjekte/verWaiste daten/ALles]: AL Zu löschende(n) Namen eingeben <*>: Jeden zu löschenden Namen bestätigen? [Ja/Nein] <J>: N Keine unreferenzierten Blöcke gefunden. Keine unreferenzierten Layer gefunden. Keine unreferenzierten Linientypen gefunden. Keine unreferenzierten Textstile gefunden. Keine unreferenzierten Symboldateien gefunden. Keine unreferenzierten Bemaßungsstile gefunden. Keine unreferenzierten Mlinienstile gefunden. Keine unreferenzierten Plotstile gefunden. Keine unreferenzierten Tabellenstile gefunden. Keine unreferenzierten Materialien gefunden. Keine unreferenzierten Visuelle Stile gefunden. Keine unreferenzierten Multi-Führungslinienstile gefunden. Keine unreferenzierten Gruppen gefunden. Keine unreferenzierten Detailansichtsstile gefunden. Keine unreferenzierten Schnittansichtsstile gefunden. Befehl: Searching for old dir: * in order to replace it with: . Cannot find font: .\ISO8.SHX Cannot find font: .\ARIAL.TTF 0 style/shape records modified. 0 image references modified. 0 xrefs modified. 0 rtext objects modified._qsave Befehl: etransmit Felder werden aktualisiert... Option eingeben [übertragungspaket Erstellen/nur Bericht/aKtuelles installationsprogramm/installation Wählen] <nur Bericht>: E Es werden Dateien gesammelt... Dateiname für Übertragungspaket-Paket: Dateiname für Übertragungspaket-Paket: 2940033687 Übertragungspaket erstellt: C:\bp 4.0\Automatisierung\2940033687.zip. Befehl: nil
------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 27. Okt. 2020 07:54 <-- editieren / zitieren --> Unities abgeben:
Gibt es eigentlich auch die Möglichkeit, dass er nicht nur den DWG Namen beim Etransmit übernimmt, sondern auch den Pfad der DWG-Datei? Das wäre dann das I-Tüpfelchen, wenn er mir die Datei direkt bei DWG speichert. Ich vermute über DWGPREFIX, aber alle meine Versuche sind gescheitert. ------------------ AutoCad 2018 [Diese Nachricht wurde von Stefan-Schirge am 27. Okt. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 27. Okt. 2020 08:35 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
Zitat: Original erstellt von Stefan-Schirge: -Gibt es eigentlich auch die Möglichkeit, dass er nicht nur den DWG Namen beim Etransmit übernimmt, sondern auch den Pfad der DWG-Datei? ETRANSMIT erwartet einene Pfad+Dateinamen bei ZIP-Generierung und Benutzer-Namenangabe, der Pfad ist aber nicht zwingend. Du kannst also einfach den Pfad mit angeben.-Das wäre dann das I-Tüpfelchen, Ein guter Zeitpunkt auf weitere Schwächen in den Zeilen hinzuweisen: Man sollte Automatisierungen immer so "bestimmt wie möglich" gestalten, also möglichst genaue festgelegte Eingaben. In deinem ETRANSMIT Part vermisse ich eindeutig die Angabe der zu nutzenden ÜBertragungseinrichtung! Ich würde dies unbedingt mit aufnehmen in den Ablauf, ansonsten wird ja "irgendeins" benutzt. (Da man<User> gerne alles Mögliche in "Standards" verstellt, würde ich persönlich auch nicht die Standard-Übertragungseinrichtung wählen, sondern meine eigens dafür angelegte. Ich habe übrigens so ca.24 verschiedene mit Aussagekräftigen Namen im Einsatz :-) ) -wenn er mir die Datei direkt bei DWG speichert. Wenn du die ZIP im gleichen Ordner wie die Zeichnungsdatei haben möchtest, dann würde ich bereits im genutzten Übertragungspaket "Übertragungspaketdateiname: Überschreiben, falls erforderlich" wählen. Alternativ wie oben geschrieben: Einfach Pfad+Dateiname angeben wenn Etransmit danach fragt. Daran denken, in Lisp Doppel-Backslashs oder Slash also Ordner-Trennzeichen im Pfad verwenden
Und jetzt schau ich mir kurz die restlichen Antwort an, die ja leider länger ausgefallen ist statt nur "Ich habs!"
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 27. Okt. 2020 09:32 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
[i>>]ICh kann redir nutzen, da unsere Tiff's immer bei den DWG`s liegen müssen. [/i] Perfekt>>Ich sehe da jetzt erstmal nichts, was verkehrt läuft... Anbei meine aktuelle LISP:>> Bezüglich BEREINIG wundert mich das wenig, denn in dem Code verwendest du ja PLÖTZLICH doch eine andere Abfolge, bzw. eine Eingabe weniger wie zuvor. Daher, kein Problem mehr mit Bereinig. Dafür ist dann aber ein anderer Fehler neu drin. BEREINIG erledigt PLOT (command "plot" "nein" "PDF" "*PDF*" "" usw... Dann schauen wir mal in das Textfenster an genau diese Stelle: [i]Befehl: plot Detaillierte Plotkonfiguration? [Ja/Nein] <Nein>: nein Layoutnamen eingeben oder [?] <PDF>: PDF Namen für Seiteneinrichtung eingeben <>: *PDF* Bereits in PDF. Aktuelle Konfiguration verwenden. Ausgabegerätname eingeben oder [?] <A3.2_DWG To PDF_297x594.pc3>:
1. Es gibt keine Seiteneinrichtung mit dem Sonderzeichen *, also ist deine Angabe für die Seiteneinrichtung "*PDF*" falsch. 2. Statt abzubrechen setzt AutoCAD den Befehl mit der aktuellen Seiteneinrichtung fort, siehe Textfenster: "..Aktuelle Konfiguration verwenden." (in deinen Testdaten "zufällig" wie gewünscht eingestellt, denn wenn der aktuelle Drucker oder was auch immer abweicht, dann würde es dir selbst auffallen) Kannst also testweise in dem Layout PDF einen anderen Drucker oder ein anderes Blattformat einstellen und dein bp4000 noch mal testen, Statt der Seiteneinrichtung "PDF" wird die aktuelle Einrichtung genommen, also nicht gie gewünscht die benannte Seiteneinrichtung. Ich nehme an du hast eine Seiteneinrichtung mit dem Namen PDF und hattest dich nur warum auch immer dazu entschlosse *PDF* zu schreiben? REDIR wow, Ich dachte gerade da lerne ich noch was, aber vermutlich hast du einfach nur einen Fehler darin und beim Testen zufällig eine Umgebung mit der es nicht aufgefallen war. Öffne mal eine Datei, CMDECHO 1 sicherstellen und führe BP4000 direkt aus, [funktioniert dein ReDir Part?] REDIR ist im Dokument nicht geladen bis man den Befehl das erste Mal startet in der Datei, oder eben die Datei redir.lsp explizit lädt. (load "REDIR" (bns_redir "*" ".")) <= SO lädt man jedoch keine Lispdatei (load "REDIR") (bns_redir "*" ".") <= würde funktionieren, noch besser wäre soetwas (if (or bns_redir (load "REDIR.lsp" nil))(bns_redir "*" ".")(alert "REDIR nicht geladen")) (substr (getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 4) Neben SUBSTR zum kürzen eine Zeichenkette gibt es auch noch STRCAT um mehrere Zeichenketten miteinander zu verbinden siehe Hilfe [F1] (strcat "D:\\MeinPfad\\OrdnerA\\" "einandererOrdner" "\\" (getvar "DWGNAME")) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 27. Okt. 2020 09:52 <-- editieren / zitieren --> Unities abgeben:
*PDF* gibt es als Seiteneinrichtung.(siehe Bild) Wenn ich es nicht angebe hängt sich die Lisp auf. Redir habe ich unter "Anwendungen laden in die Startgruppe aufgenommen. Daher funktioniert es immer. Die Sache mit dem Dateinamen und Speicherpfad , habe ich jetzt wie folgt gelöst. Klappt super Nicht wundern, es heißt jetzt BP4 . Ich habe dann im Express Ordner von Autocad noch eine acad.lsp angelegt mit folgendem Befehl: (defun s::startup () (load "BP4.LSP")) So startet meine LSP immer mit. Könnte da natürlich auch redir mit aufnehmen. (defun c:BP4 nil (setvar "ctab" "PDF") (command "zoom" "g") (command "plot" "nein" "PDF" "*PDF*" "" (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) ".pdf" ) "" "" "") (setvar "ctab" "Modell") (command "zoom" "g") (command "bereinig" "AL" "" "N") (load "REDIR" (bns_redir "*" ".")) (command "_.qsave" "_.-etransmit" "_c" (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) ".zip" ) )) ------------------ AutoCad 2018 [Diese Nachricht wurde von Stefan-Schirge am 27. Okt. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 27. Okt. 2020 10:32 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
>> *PDF* gibt es als Seiteneinrichtung.(siehe Bild)Nein, das was du siehst ist dein Layoutname mit * davor und danach, mehr nicht. Also JaIn. Es ist die aktuelle Einstellung des Layout "PDF", aber eben benannte Seiteneinrichtung. Benenne mal das Layout um oder gehe in ein ganz neues Layout, rufe den Seiteneinrichtungsmanager noch einmal auf. Allerdings erklärt dein Bild eine wichtige Information zu deinen Dateien, du benutzt keine benannten Seiteneinrichtungen (wovon Ich aber bisher ausging) >>Wenn ich es nicht angebe hängt sich die Lisp auf. Angeben muß man es, der Plotbefehl fragt ja danach, allerdings ist die Antwort falsch. Wenn du mit der aktuellen Seiteneinrichtung drucken möchtest, dann drückt man einfach weiter, als ENTER, also "" >>Redir habe ich unter "Anwendungen laden in die Startgruppe aufgenommen. Daher funktioniert es immer. Dann nehme es doch aus der Startgruppe raus und stelle die Funktion in deinem Code sicher, so bist du nicht abhängig vom ACAD-Profil. Für den normalen Anwender-Gebrauch ist Redir ohnehin im AutoLoader hinterlegt (wird geladen beim ersten Aufruf).
>>Die Sache mit dem Dateinamen und Speicherpfad , habe ich jetzt wie folgt gelöst. Klappt super Nicht wundern, es heißt jetzt BP4 . Ich habe dann im Express Ordner von Autocad noch eine acad.lsp angelegt mit folgendem Befehl: Eine ACAD.lsp würde ich nicht in einen Systemordner legen (wenn man seine benutzerdefinierten Daten an separater Stelle als Backup speichert ist es nicht schlimm, aber unnötig problematisch. Zudem auch noch der Express-Ordner, der ja nun wirklich gar nichts damit zutun hat. Egal, ich kann ja nur allgemeingültige Ratschläge geben ohne die es aber auch geht, zumindest meistens.
>>(defun s::startup ()(load "BP4.LSP")) So startet meine LSP immer mit. Schön eingerichtet würde dies nur für die erste geöffnete Datei in ACAD funktionieren, denn ACADLSPASDOC gehört eigentlich auf 0 und für "In jeder Date" ist der Name ACADOC.lsp vorgesehen.
>>(load "REDIR" (bns_redir "*" ".")) Aktuell nehme ich noch an du entfernst redir wieder aus der Startgruppe, aber wenn es es unbedingt so willst, dann einfach nur (bns_redir "*" ".")
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 27. Okt. 2020 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
Nachdem nun geklärt war: Du druckst nicht über benannte Seiteneinrichtungen, sondern über die aktuelle Seiteneinrichtung, macht jetzt die etwas sperrige Meldung mehr Sinn "Bereits in PDF. Aktuelle Konfiguration verwenden." Da du vorher unnötigerweise auf das Layout PDF wechselst bist du bereits in dem Layout auf dessen aktuelle Seiteneinrichtung du verwenden möchtest. ACAD erkennt dies und sagt dann "Bereits in PDF. Aktuelle Konfiguration verwenden." "Bereits in PDF" (LAYOUT) "Aktuelle Konfiguration verwenden." Also genau die welche unter *PDF* gemeint ist. Da hast du mich ins grübeln gebracht (weil ich auch deine DWGs nicht kannte) (command "plot" "nein" "PDF" "" "" Wäre eigentlich "Plot Layout PDF mit dessen aktueller Seiteneinrichtung.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 27. Okt. 2020 11:18 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 27. Okt. 2020 11:22 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
|
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 27. Okt. 2020 11:25 <-- editieren / zitieren --> Unities abgeben:
|
Meldin Mitglied
Beiträge: 398 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 27. Okt. 2020 11:35 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
Habe nur mit einem Auge mitgelesen. Daher kurz und knapp ein Zoom G kann emense Auswirkungen auf die Zeichnung haben bei aktivem AF daher fürs Layout (command-s "_.PSPACE") anschauen. ------------------ Gruß Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 27. Okt. 2020 11:44 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
Zitat: Original erstellt von Stefan-Schirge: Ich auch, allerdings find ich es im Layout eigentlich nicht so wichtig.
Die Wichtigkeit würde ich hier sehen: Man sieht gleich was man vor sich hat und: Warum soll ICH zoomen müssen, das soll der AN machen. Auch kommt man nicht in die Verlegenheit ein Ansichtfenster zu verstellen nur weil der letzte Experte das LAyout im Mspace verlassen hat(Todesblicke). Wenn ich also Wünsche äußern dürfte, dann wäre auch mein Wunsch Zoom Grenzen. Man sieht alles und das dann so groß wie möglich. Also den Gedanken kann ich nachvollziehen, identisch zum Modellbereich, wobei es im Layout mit dem Mspace eigentlich noch wichtiger wäre, lol. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 27. Okt. 2020 12:39 <-- editieren / zitieren --> Unities abgeben:
Guter Einwand, ist aber in diesem Fall kein Problem, weil es klar definierte Blattvorlagen mit gesperrten AF`s gibt. Es wird nur im Modellbereich gearbeitet. Wenn die jemand entsperrt und dabei Mist macht, kriegt so auf die Finger, dass er dies 1 Woche nicht wiederholen kann, auf Grund von angeschwollener Hand
Zitat: Original erstellt von Meldin: Habe nur mit einem Auge mitgelesen. Daher kurz und knapp ein Zoom G kann emense Auswirkungen auf die Zeichnung haben bei aktivem AF daher fürs Layout (command-s "_.PSPACE") anschauen.
------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meldin Mitglied
Beiträge: 398 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 27. Okt. 2020 12:45 <-- editieren / zitieren --> Unities abgeben: Nur für Stefan-Schirge
|
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 27. Okt. 2020 12:52 <-- editieren / zitieren --> Unities abgeben:
Ich kannte den Befehl gar nicht. Ich werde den gleich noch mit einbauen Danke für den Tip. Zitat: Original erstellt von Meldin: error handling ist nicht so deins. Dann viel Spaß bei deinen Foltermethoden.
------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan-Schirge Mitglied
Beiträge: 42 Registriert: 26.10.2020
|
erstellt am: 24. Nov. 2020 12:10 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe hierzu nochmal eine Frage, ist es möglich, dass er den isave-Befehl nur ausführt wenn auch eine Bilddatei vorhanden ist? Ich habe das Problem, dass er das Makro unterbricht, falls es keine externe Referenz gibt. Vielen Dank vorab :9 ------------------ AutoCad 2018 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |