| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
| Webcast: PTC | Creo+, ein Webinar am 29.11.2024
|
Autor
|
Thema: Benutzer über den Pfad abfragen (1531 mal gelesen)
|
Inkognito Mitglied
Beiträge: 3 Registriert: 22.07.2004
|
erstellt am: 31. Aug. 2004 15:02 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Hab folgendes Problem: :local-functions '((doit () (progn (create_thumbnail :vp viewport :size :user :size_x xsize :size_y ysize :fit :off :filename (format nil "c:/temp/SD_anim/Bild~3,'0D.jpg" 1)) (loop for i from 2 to (+ schritt 1) do (sd-call-cmds (position_pa Objekt :rotate :axis (nth 0 achse) (nth 1 achse) :rotation_angle (sd-deg-to-rad grad) :done) ;;:failure (display "Fehler bei Drehung") ;;:success (display "Drehung war OK") ) (create_thumbnail :vp viewport :size :user :size_x xsize :size_y ysize :fit :off :filename (format nil "c:/temp/SD_anim/Bild~3,'0D.jpg" i)) ) (when (not Bilder) (delete-file (format nil "c:/temp/SD_anim/Bild~3,'0D.jpg" (+ Schritt 1))) ) (oli::sd-sys-exec "C:/Programme/ImageMagick-6.0.5-Q16/CONVERT.EXE -delay 10 C:/temp/SD_anim/Bild*.jpg C:/temp/SD_anim/rotate.gif") (sd-sys-background-job (format nil "del ~a" (sd-convert-filename-to-platform "C:/temp/SD_anim/*.jpg"))) ;;(sd-sys-background-job (format nil "explorer ~a" (sd-convert-filename-to-platform "C:/Temp"))) (sd-sys-background-job (format nil "explorer ~a" (sd-convert-filename-to-platform "C:/temp/SD_anim/rotate.gif"))) ;;(sd-sys-background-job (format nil "C:/Programme/Internet Explorer/IEXPLORE.EXE C:/temp/SD_anim/rotate.gif"))) ) ) ) :ok-action Mit dem Image Magick kann man die "Screenshots" zu einem animierten GIF konvertierten. Das Problem ist, dass OSD alle JPG's in den Ordner "C:/temp/SD_anim/". Jetzt versuch ich irgendwie, dass OSD den Benutzer abfrägt wo er die JPG's abspeichern soll bevor er eine rotate.gif macht. Und am Ende sollte er am besten die JPG's, die nicht mehr benötigt werden rauslöschen. Wie könnte man dies am besten realisieren? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RainerH Mitglied Techn. Ang. (Konstruktion)
Beiträge: 736 Registriert: 22.01.2003 OSDM 14.00A OSDD 14.50 MM 14.00A Windows-XP Pro x64 Edition -------------------------- HP xw6400 Intel Xeon 3.00 GHz 4.00 GB RAM ATI FireGL V7200
|
erstellt am: 31. Aug. 2004 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für Inkognito
|
Dorothea Mitglied
Beiträge: 242 Registriert: 22.11.2001
|
erstellt am: 31. Aug. 2004 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für Inkognito
Hallo Inkognito, Du koenntest z.B. in deinen Dialog eine Variable einfuegen, die den Nutzer einen Filenamen eingeben laesst. Dieser Filename enthaelt dann auch das Verzeichnis. Und das Ergebnis-Bild heisst dann nicht notwendigerweise 'rotate.gif' sonden so wie der Nutzer einen Filenamen ausgewaehlt hat. Viele Infos ueber Filenamen findest du im Developers Kit bei :value-type :filename (documentation/integration_kit/reference/dg_manual.html#file-selection) Die unnoetigen Files koenntest du evtl. mit Standard Lisp Funktionen loeschen. Ich kenne mich damit auch nicht genug aus um dir da wesentlich weiter helfen zu koennen. Gruss Dorothea Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
Beiträge: 2158 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.6, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook Fury 16 G9, Windows 10 Pro 64
|
erstellt am: 31. Aug. 2004 16:52 <-- editieren / zitieren --> Unities abgeben: Nur für Inkognito
|
Inkognito Mitglied
Beiträge: 3 Registriert: 22.07.2004
|
erstellt am: 01. Sep. 2004 09:31 <-- editieren / zitieren --> Unities abgeben:
Danke für eure Antworten!!! Aber eine Frage hab ich noch: und zwar die Zeile "sd-convert-filename-to-platform" ... Soll diese Funktion für die Umwandlung zwischen / und \ sorgen oder versteh ich da was falsch? Grüße aus Stuttgart Inkognito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorothea Mitglied
Beiträge: 242 Registriert: 22.11.2001
|
erstellt am: 01. Sep. 2004 12:11 <-- editieren / zitieren --> Unities abgeben: Nur für Inkognito
Im Prinzip ja. Nach dem Aufruf der Funktion kannst du dir sicher sein, dass der Pfadname von der Anwendung auch gelesen werden kann. Initial arbeitet das System ja immer mit '/'. Und der String wird dann richtig umgewandelt. Beispiel aus der Doku: NT platform: (sd-convert-filename-to-platform "/tmp/example.lsp") => "\\tmp\\example.lsp" Dorothea Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Inkognito Mitglied
Beiträge: 3 Registriert: 22.07.2004
|
erstellt am: 01. Sep. 2004 13:41 <-- editieren / zitieren --> Unities abgeben:
Ja aber wieso lässt dann OSD bzw LISP nicht zu, dass ich es gleich mit "\" editiere (dann brauch ich ja diese Funktion nicht). Kurz davor hab ich versucht den Pfad mit "\" anzugeben und OSD hat es nicht akzeptiert. Ach ja ... kann ich in Help die Funktion für Translation finden? Was ich bis jetzt gefunden habe war TRANSLATION_3D und das hat mich nicht wirklich weitergebracht. Gruß Inkognito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 01. Sep. 2004 14:47 <-- editieren / zitieren --> Unities abgeben: Nur für Inkognito
Zitat: Original erstellt von Inkognito: Ja aber wieso lässt dann OSD bzw LISP nicht zu, dass ich es gleich mit "\" editiere (dann brauch ich ja diese Funktion nicht).
LISP akzeptiert sehr wohl auch Backslashes in Dateipfaden. Man muss sie halt nur verdoppeln, um sie vom einfachen Escape-Zeichen zu unterscheiden. Siehe dazu auch die Dokumentation zum Common-LISP-Standard (beispielsweise unter http://www.lisp.org/HyperSpec/Body/sec_2-1-4-6.html). Wenn Dich die doppelten Backslashes stoeren, dann gib halt keine ein und verwende / im Pfad und konvertiere den Pfad hinterher mit sd-convert-to-platform. Du hast die Wahl. sd-convert-to-platform ist dringend empfohlen fuer plattformunabhaengigen Code - und zwar dann, wenn Du den Pfad an externe Tools (also beispielsweise eine DOS-Shell oder in Deinem Fall an ImageMagick) weitergibst. Claus
[Diese Nachricht wurde von clausb am 01. Sep. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |