Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  save_package

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo
  
MAIT übernimmt Kundenstamm von GMCAD, eine Pressemitteilung
Autor Thema:  save_package (1175 mal gelesen)
RobCraven
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RobCraven an!   Senden Sie eine Private Message an RobCraven  Schreiben Sie einen Gästebucheintrag für RobCraven

Beiträge: 111
Registriert: 30.01.2009

Win10 64bit
Inventor 2022
AutoCad mechanical 2022
Vault pro 2022

erstellt am: 14. Jun. 2010 16:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich bin dabei mir das lisp von Walter aus diesem Tread so umzustricken, dass es einzelne .pkg files speichert... kann ja nich so schwehr sein dacht ich... nach dem ich ewig nach dem entsprechenden Code zum pkg-speichern gesucht habe, komme ich nun da nicht weiter, diesen richtig einzusetzen. Ich hab das jetzt so

Code:
(setf datei (format nil "~a//~a.pkg" verz (sd-inq-obj-basename teil)))
und so
Code:
(sd-call-cmds (save_package :select teil :filename datei :overwrite))
mein einzigster Anhaltspunkt ist
Zitat:
All filenames must be enclosed by double quotes (" ").
aber das ist er doch oder? Des Weiteren gebe ich zu, dass ich überhaupt keine Ahnung habe, was
Code:
"~a//~a.pkg"
bedeutet, oder wie es funktioniert. Aber ich weiß, dass es irgendwie den Pfad beschreibt, aber wie???

vielleicht kann mir ja mal einer auf die Sprünge helfen...


mfg
KJ.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

der_Wolfgang
Moderator
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2296
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.5737
● Drafting V17~V20.7@job
● Modeling V17~V20.7@job
● Windchill 12.1.2.6@job
● UWGM Client 13.0.0.1@job
● Taschenrechner
● Stift+Zettel V8.42

erstellt am: 14. Jun. 2010 21:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für RobCraven 10 Unities + Antwort hilfreich

    
Zitat:
keine Ahnung habe, was
Code:
"~a//~a.pkg"
bedeutet, oder wie es funktioniert.

vielleicht kann mir ja mal einer auf die Sprünge helfen...


Peitsche-Schwing   Ala HOPP!!  :D

a) mach dich mal über die format funktion schlau. Auf http://osd.cad.de  und bei http://www.clausbrod.de  gibt es ausreichend Hinweise fuer Referenzen und co.

b) kurz: format baut mit Hilfe einer Formatierungs Anweisung und X Argumenten einen String zusammen

in deinem konkreten fall

Code:
(format nil "~a/~a.pkg" verz (sd-inq-obj-basename teil)))

* formatierungsanweisung: "~a/~a.pkg"
* 1. Argument verz
* 2. Argument teil-basename

das 1. Argument wandert in das erste konstrukt was mit ~ anfängt, das 2. ins 2. usw.

Heraus kommt beispielsweise:
--> c:/temp/cube42.pkg

nun koennte es aber sein das dein Verzeichnisname ein Blank enthält (das ist *immer* hässlich)..     und mit 
--> c:/Documente and Settings/Temporary files/cube42.pkg
würde das Dateisystem die Grätsche machen..  ok, nicht ganz.

Als Dateiname bräuchtest Du
--> "c:/Documente and Settings/Temporary files/cube42.pkg"

und das als LISP string im code (!) wuerde so aussehen
--> "\"c:/Documente and Settings/Temporary files/cube42.pkg\""

Beachte: die beiden \"  sind BESTANDTEIL des strings.. da aber strings mit " umschlossen werden braucht es eine besondere Schreibweise: deswegen der \ davor. (Man spricht vom 'escapen eines char'   : man hebt die Sonderbedeutung des Zeichen (hier anfang/ende eines Strings) auf und damit kann das Zeichen bestandteil des String werden.

Ufff...  ;)

somit landen wir bei:

Code:
(format nil "\"~a/~a.pkg\"" verz (sd-inq-obj-basename teil)))

Bist Du bis zum Ende mit gesprungen?     

Du hast da übrigens zwei Slashes zwischen verz und teilename gehabt. Das bring nix. GGF mal noch der Integration kit funktion sd-convert-filename-to-platform gucken. Die kuemmert sich um / \ .  Aber die meisten OSD file operation funktionieren mit / ganz gut.

Wolfgang (mal wieder mit EDV-technischen-Smilie-Problem :-/

------------------
Korrekt gelesen ist 'verz' natuerlich das 3. Argument fuer format..  aber ich habs mal etwas vereinfacht.

------------------
Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en)NotePad++

[Diese Nachricht wurde von der_Wolfgang am 14. Jun. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RobCraven
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RobCraven an!   Senden Sie eine Private Message an RobCraven  Schreiben Sie einen Gästebucheintrag für RobCraven

Beiträge: 111
Registriert: 30.01.2009

erstellt am: 15. Jun. 2010 09:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Wolfgang,

Dank dir, dass du mir das mit dem "~a/~a.pkg" näher gebracht hast, so schwer ist das eigentlich nicht zu verstehen, wenn man's einmal hat...

Der eigentliche Fehler lag aber scheinbar darin, dass "save_package" den Parameter ":select" nicht kennt und daher damit nichts anfangen konnte, diesen entfernt und schon klappt es, sieht dann so aus

Code:
(sd-call-cmds (save_package teil :filename datei :overwrite))

Zitat:
Du hast da übrigens zwei Slashes zwischen verz und teilename gehabt. Das bring nix. GGF mal noch der Integration kit funktion sd-convert-filename-to-platform gucken. Die kuemmert sich um / \ . Aber die meisten OSD file operation funktionieren mit / ganz gut.
ich hatte das aus Walters lisp kopiert, leider ist es oft noch so, dass ich nicht alles innerhalb der lisp verstehe und daher denke "das muss schon so, sonst hätten sie's ja anders gemacht"

mfg
KJ.

[Diese Nachricht wurde von RobCraven am 15. Jun. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz