Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Direct Modeling
  laden von dokumenten aus wm (lisp)

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
Autor Thema:  laden von dokumenten aus wm (lisp) (883 mal gelesen)
stonly
Mitglied



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

Beiträge: 43
Registriert: 05.09.2003

erstellt am: 28. Jan. 2004 12: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 zusammen,

habe noch ein problem. (im grunde noch mehrere, die anderen gehören hier aber nicht her  )

laden von dokumenten aus dem wm mit lisp prgramm:

es gibt den befehl db_load_3d_data... mit dem man dokumente aus dem wm (workmanager) laden kann.

problem 1: wenn das dokument nicht in der klasse sd_modelle gespeichert ist, greift der ladebefehl nicht.
problem 2: nach dem ausführen des befehls bricht mein programm ab. (z.b. display siehe unten greift nicht mehr)

wie kann man dokumente aus verschiedenen klassen mit einem lisp programm laden ?
wie sorgt man dafür, daß nach dem laden das programm nicht beendet wird ?
gibt es irgendwo eine doku zu diesem befehl ?

....
  :local-functions

'(
    (teolad ()
     
      (db_load_3d_data :name "69802004-1") 
      (display "nach ladevorgang")

  )
  )
....

grüße aus sonnenbühl (wo andere urlaub machen)

  steffen

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

Dorothea
Mitglied



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

Beiträge: 242
Registriert: 22.11.2001

erstellt am: 28. Jan. 2004 13:12    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 stonly 10 Unities + Antwort hilfreich

Hallo Steffen,

Zum Laden im speziellen aus dem Workmanager kann ich dir nichts sagen. Aber das Stueckchen Code, was du abgebildet hast, das kann/darf so nicht tun.
Generell gilt im Integration Kit:
Will man einen Dialog aus einem anderen Dialog heraus aufrufen, dann muss man den Aufruf mit dem Makro:
sd-call-cmds
umgeben.
Das ist wie gesagt nicht spezifisch fuer Workmanager sondern gilt fuer alles was du programmierst.

Mehr Infos gibt es unter:
integration_kit/reference/sd-call-cmds.html#sd-call-cmds

Gruss Dorothea

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

Dieter Kotsch
Mitglied



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

Beiträge: 311
Registriert: 10.08.2002

erstellt am: 28. Jan. 2004 14: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 stonly 10 Unities + Antwort hilfreich

Hi
Nach meinem Kenntnisstand mußt Du im WM das ein oder andere Makro anpassen. So kannst Du per DDE/Interlink einen Befehl bzw. Aktion an den WM senden. Dies wird auf der WM-Seite ausgeführt. Das Thema ist aber sehr komplex.

Gruß Didi

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

stonly
Mitglied



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

Beiträge: 43
Registriert: 05.09.2003

erstellt am: 28. Jan. 2004 14:14    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 dorothea und co.

das sd-call-cmds .... macht hier keinen unterschied, hatte ich auch
schon mit probiert. untenstehend nochmals ein paar zeilchen die das problem deutlicher zeigen. mit der push-action kann man zwar den ladevorgang starten, das ganze kehrt aber nicht zum dialog zurück.


(in-package :teo)
(use-package  li)

(sd-defdialog 'Teoladwm
  :dialog-title "Teoladwm"

  :variables
  '(
    (doi0          :value-type
                    art-assembly
                    :modifies nil
              :title "inqdoil"
                rompt-text "bla"
              :initial-value nil
    )
 
   
    (next  ush-action (progn
          (teolad)
        )
    :title "lad")     
    )
   
  :local-functions

'(
    (teolad ()
      (sd-call-cmds (db_load_3d_data :name "10020660-01")  )
    )
  )
  k-action '(teolad)

); Ende sd-defdialog


gruss
  steffen

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

Dieter Kotsch
Mitglied



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

Beiträge: 311
Registriert: 10.08.2002

erstellt am: 28. Jan. 2004 14:47    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 stonly 10 Unities + Antwort hilfreich

HI
Ich habe die Erfahrung gemacht, dass beim Laden aus dem WM der aktuelle Dialog abgebrochen wird. Somit duerften alle Aktionen, die nach den Laden kommen, keine große Bedeutung haben.

Gruß Dieter

[Diese Nachricht wurde von Dieter Kotsch am 29. Jan. 2004 editiert.]

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: 2143
Registriert: 12.12.2000

Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf
HP ZBook 17 G4, Windows 10 Pro 64

erstellt am: 29. Jan. 2004 14:00    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 stonly 10 Unities + Antwort hilfreich

Zum Zugriff auf andere Klassen kann ich auch nix beitragen, aber um nach dem Laden noch irgendwelche Nachbearbeitung automatisch durchzuführen, geht vielleicht der folgende Workaround:

  • zwei Dialoge
  • setze eine globale Variable im ersten Dialog vor dem eigentlichen Ladebefehl auf t
  • fang das Event *SD-CHANGE-OBJECT-TREE-EVENT* ab und frag zusätzlich Deine Variable ab
  • Falls t, starte den zweiten Dialog und setz die Variable auf nil

Ist ziemlich "russisch", sollte aber funktionieren.

------------------
Grüße aus Wien

Walter
DC4 Technisches Büro GmbH

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

stonly
Mitglied



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

Beiträge: 43
Registriert: 05.09.2003

erstellt am: 29. Jan. 2004 14:09    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 walter,

danke ! probier ich aus und melde mich sobald ich
zu diesem teil versuche gemacht habe.

grüße
  steffen

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

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
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: 2017
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2364
● Drafting V20.1+4
● Modeling V20.1+4

erstellt am: 29. Jan. 2004 15:01    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 stonly 10 Unities + Antwort hilfreich

Hi Ihr,

problem dieser programmatischen Aufrufe ist die Art und Weise wie sich beide Programme unterhalten. Die koennen naemlich nur miteinander, wenn sie interactive sind.

Beispiel, stelle die Maus im DDM fenster in ein EingabeFeld, sodass der text cursor erscheint. Versuche nun vom OSD aus diesen DDM anzusprechen (z.B. open editor). NIX tut sich.. der OSD zeigt seine Sanduhr bis in alle Ewigkeit..  pickst Du nun mit der Maus im DDM auf eine Stelle ausserhalb eines Eingabefeldes, wartet der OSD nicht mehr und das EditorUI vom DDM kommt hoch.

DDM nimmt nur kommandos vom OSD entgegen und fuehrt sie aus wenn er NICHTS anderes zu tun hat und umgekehrt!

Trace mal Deine Lisp funktionen
(trace Teoladwm db_load_3d_data display load_sd load)
dann benutze den von Dir erstellten dialog mit "laden in der ok-action" (also nicht innerhalbe des Pushbuttons).

Dein Dialog, db_load_3d_data und display sind schon lange fertig bis dann mal die Daten vom DDM entgegen genommen werden und wirklich geladen werden.


Du wirst dies nur umgehen koennen wenn Du heftig DDM Macros aenderst, bzw. Dich abnabelst und eigene schreibst.


Alternativ: Modelmanager + OLI::sd-db-element-* funktionen. Du kannst mit dem MM ja auf die selbe Datenbank zugreifen.

wenn Du mal wieder
(sd-call-cmds (db_load_3d_data :name "69802004-1"))
(display "nach ladevorgang")
nutzt, wirst Du sehen, das der Display sehr wohl ausgeführt wird.. nur ob er das richtige anzeigt .. ;-)


Ach und noch was: wenn Du einen Dialog postest, solltest Du unbedingt die Smilies fuer dieses Posting ausschalten ;-)

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

Martin.M
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 352
Registriert: 05.10.2002

erstellt am: 30. Jan. 2004 22: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 Nur für stonly 10 Unities + Antwort hilfreich


Hallo Steffen,

zu Problem 2 ist meine Erfahrung das das Lisp Programm nicht wartet bis der Ladevorgang aus dem Workmanager abgeschlossen ist, sondern weiter läuft.

Wir benutzen "neuladen" für das automatische Laden von Baugruppen nach dem Start des OSD.
Als ich versucht habe im Macro die Baugruppe nach dem Neuladen als VRML-Datei zu speichern, wurde nur das gespeichert was schon im OSD geladen war.

Eine Lösung habe ich nicht gefunden. Es gibt wohl einen sleep-Befehl aber dann soll das Laden auch nicht mehr funktionieren.


Tschuess
Martin

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)2023 CAD.de | Impressum | Datenschutz