Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Lisp- Makro Teilename

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
  
Extended Maintenance & Support I Abkündigung der Abas ERP Version ERP 20, eine Pressemitteilung
Autor Thema:  Lisp- Makro Teilename (1183 mal gelesen)
edgar
Mitglied
Dipl. Ing. Maschinenbau


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

Beiträge: 386
Registriert: 06.06.2001

ME10 8.7F
OSDM 11.50A
OSDD 11.5
HPUX 10.20
C3600

erstellt am: 24. Jul. 2003 10:15    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


zdatname.txt

 
Hallo,
habe angefangen ein Lisp Programm zu schreiben, um PKG-Dateien aus einer Liste automatisch zu laden, und diese dann weiterzuverarbeiten.
Der Ladevorgang funktioniert, nur beim Umbenennen haperts noch.

Die Syntax im OSD dazu ist:
change_name_pa  art_asmb "/part1" :name "part2"

Die Syntax in Lisp? Meine Versuche scheiterten alle.

z.B.
k-action
'(sd-call-cmds (change_name_pa  art_asmb namealt1 :name nameneu))

wobei namealt1 laut Displayausgabe "/10100269_ZYLINDERSCHRAUBE_M16X150"
und nameneu "10100269_ZYLINDERSCHRAUBE_ISO_4762_M16_X_150_-_10.9.pkg"
beträgt.

Kann mir jemand weiterhelfen?

Gruß
Edgar

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2166
Registriert: 12.12.2000

erstellt am: 24. Jul. 2003 10:30    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 edgar 10 Unities + Antwort hilfreich

Zitat:

...wobei namealt1 laut Displayausgabe "/10100269_ZYLINDERSCHRAUBE_M16X150"
und nameneu "10100269_ZYLINDERSCHRAUBE_ISO_4762_M16_X_150_-_10.9.pkg"
beträgt.


CHANGE_NAME_PA verlangt für beide Namen den ganzen Pfad, in deinem Beispiel müsste nameneu also
"/10100269_ZYLINDERSCHRAUBE_ISO_4762_M16_X_150_-_10.9.pkg" heissen!

------------------
Grüße aus Wien
Walter
DC4 Technisches Büro GmbH

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

edgar
Mitglied
Dipl. Ing. Maschinenbau


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

Beiträge: 386
Registriert: 06.06.2001

ME10 8.7F
OSDM 11.50A
OSDD 11.5
HPUX 10.20
C3600

erstellt am: 24. Jul. 2003 10:57    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

Funktioniert leider auch nicht.
Hab das ganze mal als funktion1 defeniert:
(setq namealt1 (concatenate 'string "\"/" namealt "\""))
    (setq nameneu (concatenate 'string "\"" next-line "\""))
    (setq funktion (concatenate 'string "  art_asmb " namealt1 " :name " nameneu))
      (setq funktion1 (concatenate 'string "change_name_pa " funktion " complete"))
    k-action
  '(sd-call-cmds (funktion1))

wobei funktion1 laut Displayausgabe
change_name_pa  art_asmb "/10100269_ZYLINDERSCHRAUBE_M16X150" :
name "10100269_ZYLINDERSCHRAUBE_ISO_4762_M16_X_150_-_10.9.pkg" complete
beinhaltet

Wenn ich den Ausdruck in die Befehlszeile eingebe, klappt die Umbenennung problemlos. Nur leider nicht im Macro.

Wie bekomme ich funktion1 zur Ausführung im Makro?

Gruß
Edgar

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2166
Registriert: 12.12.2000

erstellt am: 24. Jul. 2003 11:13    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 edgar 10 Unities + Antwort hilfreich

Warum der Umweg über Funktionen? Ich setze Strings übrigens immer mit format zusammen:

(setq namealt1 (format nil "/~a" namealt))
(setq nameneu (format nil "/~a" next-line))
...
k-action '(sd-call-cmds (CHANGE_NAME_PA :PART_ASMB namealt1 :NAME nameneu))

------------------
Grüße aus Wien
Walter
DC4 Technisches Büro GmbH

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

edgar
Mitglied
Dipl. Ing. Maschinenbau


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

Beiträge: 386
Registriert: 06.06.2001

ME10 8.7F
OSDM 11.50A
OSDD 11.5
HPUX 10.20
C3600

erstellt am: 24. Jul. 2003 12:19    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

Habe wieder was dazugelernt, aber das Programm läuft immer noch nicht.
Hab jetzt die Eingabe aufs Wesentliche beschränkt.
Dazu im OSD ein Teil test angelegt.

(defun datname1 ()
    (setq namealt (format nil "/~a" "\"test\""))
    (setq nameneu (format nil "~a" "\testneu\""))
    k-action
    '(sd-call-cmds (CHANGE_NAME_PA :PART_ASMB namealt :NAME nameneu  complete))

wobei namealt laut Displayausgabe
"/test"
nameneu
"testneu"

Leider keine Reaktion bei der Programmausführung.

Befehlszeileneingabe funktioniert aber.
CHANGE_NAME_PA :PART_ASMB "/test"  :NAME  "testneu" complete

Kann man sich über trace zeilenweise anzeigen lassen was bei der Programmausführung passiert?

Gruß
Edgar

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2166
Registriert: 12.12.2000

erstellt am: 24. Jul. 2003 12:57    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 edgar 10 Unities + Antwort hilfreich

So, jetzt mal ganz von Adam und Eva angefangen. Wie rufst du denn diese Funktion auf? Interaktiv aus der Benutzeroberfläche kann man LISP-Funtionen nur über einen Dialog aufrufen!
Die ganze Geschichte mit den Backslashes stimmt auch nicht:
    (setq namealt (format nil "/~a" "test"))

------------------
Grüße aus Wien
Walter
DC4 Technisches Büro GmbH

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

edgar
Mitglied
Dipl. Ing. Maschinenbau


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

Beiträge: 386
Registriert: 06.06.2001

ME10 8.7F
OSDM 11.50A
OSDD 11.5
HPUX 10.20
C3600

erstellt am: 24. Jul. 2003 13:28    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

Nach deiner Beschreibung sollte das Programm so aussehen

(defun datname1 ()
    (setq namealt (format nil "/~a" "test"))
    (setq nameneu (format nil "/~a" "testneu"))
    k-action
    '(sd-call-cmds (CHANGE_NAME_PA :PART_ASMB namealt :NAME nameneu  complete))


Leider keine Reaktion bei der Programmausführung.

Das Programm ruf ich in der Befehlszeile auf über (datname1)

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2166
Registriert: 12.12.2000

erstellt am: 24. Jul. 2003 14:05    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 edgar 10 Unities + Antwort hilfreich

Und genau das geht eben nicht, du brauchst einen Dialog:

(sd-defdialog 'datname1
:dialog-title "Datei umbenennen"
:dialog-control :sequential
:toolbox-button nil
:ok-action
'(progn
  (setq namealt (format nil "/~a" "test"))
  (setq nameneu (format nil "/~a" "testneu"))
(sd-call-cmds (CHANGE_NAME_PA :PART_ASMB namealt :NAME nameneu))
);;progn
);;end-of-dialog

Das kannst du dann mit datname1 (ohne Klammern!) in der Befehlszeile aufrufen.
Das obenstehende Beispiel ist "quick and dirty" geschrieben, wie man richtig mit Dialogen umgeht steht hier:
installdir\help\Common\documentation\integration_kit\reference\dg_manual.html

------------------
Grüße aus Wien
Walter
DC4 Technisches Büro GmbH

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