| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: Volumen und die Masse via LISP (2827 mal gelesen)
|
tdoerner Mitglied Konstrukteur
Beiträge: 57 Registriert: 22.05.2003
|
erstellt am: 10. Sep. 2003 15:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich hab auch mal ein riesen Anliegen an unsere "Lisp-Fee". Ich versuche zur Zeit verzweifelt mir via LISP und dem Befehl get_vol_prop :for_part :volume :mass das Volumen und die Masse bei voreingestellter Dichte ausgeben zu lassen. Die Dichte kann ich mir mit display (sd-inq-part-density ND_PART) ausgeben. Aber die beiden anderen Werte kann ich einfach nicht auslesen ( zumindest mit meinen wenigen kenntnissen nicht ). Ich benötige die Werte um diese dann in Annotation als Text ausgeben zu können ( da ist schon das zweite Problem ). Ich hoffe Ihr könnt mir helfen. Grüße Thomas ------------------ alles ist machbar, der Tag hat 24h und wenn's brennt hast ja auch noch die Nacht.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 10. Sep. 2003 17:34 <-- editieren / zitieren --> Unities abgeben: Nur für tdoerner
Hallo Thomas, einen Teil der Antworet hast Du ja schon: (get_vol_prop :for_part (oli::sd-pathname-to-obj "/T1") :mass) das ganze in eine Variable: (setf my-text (get_vol_prop :for_part (oli::sd-pathname-to-obj "/T1") :mass)) Wenn Du nun das Ganze als Text für Annotation brauchst würde ich aber einen Dialog bauen. Denn aus der Zeichnung kannst Du über: (oli::sd-inq-parent-obj (oli::sd-am-inq-curr-view-set)) Den Besitzer der Zeichnung bekommen (als SEL_ITEM). Diese SEL_ITEM steckst Du in die Funktion (get_vol_prop :for_part (oli::sd-inq-parent-obj (oli::sd-am-inq-curr-view-set)) :mass) Den Output brauchst Du nun für den Text_dialog in Annotation. Aufrufen aus deinem Dialog ohne sd-call-cmds da der Text Dialog interaktiv wird (Text hängt am Cursor.) Viel Spass beim Programmieren.
------------------ Klaus Lörincz 0174 3439 428 Sindelfingen Germany Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tdoerner Mitglied Konstrukteur
Beiträge: 57 Registriert: 22.05.2003
|
erstellt am: 11. Sep. 2003 08:07 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus, erstmal vieeeeelen Dank für deine rasche Antwort. So nun habe ich mal versucht im 1. Anlauf einen dialog zu schreiben momentan nur für SD. Klappt nich. Hab mein LSP-File mal angehängt (hoffentlich klappts), vielleicht kannst Du mir für meinen 1. Schritt weiterhelfen. Gruß Thomas ------------------ alles ist machbar, der Tag hat 24h und wenn's brennt hast ja auch noch die Nacht.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 11. Sep. 2003 10:17 <-- editieren / zitieren --> Unities abgeben: Nur für tdoerner
Hallo Thomas, Hier ein Beispiel um die Daten zu bekommen. Wenn Du ein "normales" OSD Kommando aus einem Dialog rufen willst so musst Du es mit sd-call-cmds tun. Nur wenn Du ein OSD Kommando nicht voll qualifiziert aufrufen willst kannst Du auf sd-call-cmds verzichten. Der Ursprungsdialog stibt dann. PS: Hast Du schon den Integration Kit gelesen ?? Grüßle
Klaus
------------------ Klaus Lörincz 0174 3439 428 Sindelfingen Germany Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tdoerner Mitglied Konstrukteur
Beiträge: 57 Registriert: 22.05.2003
|
erstellt am: 11. Sep. 2003 14:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus, Tja, ich habe natürlich den Integration-Kit als Bettlektüre (Spaß beiseite) gelesen, aber ich muß zu meiner Schande gestehen, das es mit meinem English wohl nicht unbedingt zum Besten steht. Der IK ist ein tolles Nachschlagewerk, er ist unbedingt zum Empfehlen, aber wenn man so wie ich als Einzelkämfer versucht sich mit LISP "anzulegen" ist es ziemlich schwer. Darum hoffe ich, daß ich in diesem Forum auf Unterstützung bauen kann. So.. genug geschwafelt.. Ich hab mir deinen verbesserten Code angesehen, funktioniert genauso wie ich's gern wollte, danke. Nun noch eine "kleine" Bitte, könntest Du mir ein Beispiel geben, wie genau ich z.B. das volumen von SD an ANNO übergeben kann, und die Prozedur die dann schlußendlich den Text zum Cursor bringt????? Ein grooooooßes Danke schon im Voraus Gruß Thomas ------------------ alles ist machbar, der Tag hat 24h und wenn's brennt hast ja auch noch die Nacht.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 11. Sep. 2003 16:37 <-- editieren / zitieren --> Unities abgeben: Nur für tdoerner
Hallo Thomas, Jetzt mal ein paar doofe Fragen: Soll das ganze aus Annotation starten? In der Zeichung sind mehrere Teile oder nur ein Teil ? Ist das ganze für eine Stückliste ? Grüßle
------------------ Klaus Lörincz 0174 3439 428 Sindelfingen Germany Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tdoerner Mitglied Konstrukteur
Beiträge: 57 Registriert: 22.05.2003
|
erstellt am: 12. Sep. 2003 07:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus, also, um das Problem genauer zu Beschreiben: Ich muß auf den Zeichnungen (Annotation) das Volumen und die Masse ausweisen. Es ist ein Platz dafür vorgesehen. Ich dachte mir ich ich werde sog. Platzhalter auf dem Rahmen platzieren, die ich dann via Lisp ausfüllen kann. Das ganze sollte auch funktionieren mit Teilen/Bgrp. die aus dem Workmanager geladen wurden und mit einem Schreibschutz versehen sind. Dein Beispiel habe ich wie gesagt ausprobiert und das System meckert wenn ich die Infos von einem Teil mit Schreibschutz haben möchte (Meldung: Teil schreibgeschützt, kann nicht geändert werden - Ich will doch nur eine Info von diesem Teil, und will es nicht verändern.). Zu deiner ersten Frage, natürlich soll das Proggie in Annotation aufgerufen werden, sonst würde es wahrscheinlich keinen Sinn machen. Auf der Zeichung kann ein Teil oder eine ganze Baugruppe sein, aber KEINE Stückliste. Ich brauche die Information entweder eines Einzelteils oder einer Baugruppe. Zu meinem Vorgehen: Ich habe im ersten Schritt versucht (mit deiner Hilfe), nachzuvollziehen wie ich die Infos auslesen kann und dann ausgeben. Im zweiten Schritt will ich jetzt (mit deiner Hilfe) versuchen, wie du mir in deiner ersten Antwort geschrieben hast, das ganze in Annotation auszugeben und an den "Cursor zu hängen". Klappt nicht. Na ja, ich bin halt noch Anfänger und brauche einfach, so scheints, dich und auch die netten User vom Forum um mit dem Programmieren voranzukommen. Hab ja auch schon nen Prog-Kurs belegt, aber der war vom Inhalt schlecht aufgezogen. Na ja, ich hoffe ich kann dich/euch mit meinen Anfängerschwierigkeiten trotzdem "belästigen". Beste Grüsse Thomas ------------------ alles ist machbar, der Tag hat 24h und wenn's brennt hast ja auch noch die Nacht.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 12. Sep. 2003 08:47 <-- editieren / zitieren --> Unities abgeben: Nur für tdoerner
|
tdoerner Mitglied Konstrukteur
Beiträge: 57 Registriert: 22.05.2003
|
erstellt am: 12. Sep. 2003 11:26 <-- editieren / zitieren --> Unities abgeben:
Spitze, aber das Progie nimmt nur jeweils das aktive teil und nicht z.B die Bgr oder ein anderes teil, mach ich was falsch???? Gruß Thomas ------------------ alles ist machbar, der Tag hat 24h und wenn's brennt hast ja auch noch die Nacht.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 12. Sep. 2003 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für tdoerner
Hallo Thomas, wenn Du auf den Knopf "Teil/Bgr" drückst solltest Du ein Teil aus der Struckturliste (die in den Vordergrung kommt)selektieren können. Eine ":after-input" oder ":check-function" würden der Selektion noch ein "+" an Sicherheit bringen (Teil ist nicht in dieser Zeichnung enthalten usw.) Grüßle
------------------ Klaus Lörincz 0174 3439 428 Sindelfingen Germany Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tdoerner Mitglied Konstrukteur
Beiträge: 57 Registriert: 22.05.2003
|
erstellt am: 15. Sep. 2003 08:32 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus, ich kann schon ein Teil selektieren, aber das System nimmt nur immer die Werte vom aktiven Teil??? Egal was ich selektiere - Bgr/Teil. Gruß Thomas ------------------ alles ist machbar, der Tag hat 24h und wenn's brennt hast ja auch noch die Nacht.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 15. Sep. 2003 10:02 <-- editieren / zitieren --> Unities abgeben: Nur für tdoerner
Hallo Thomas, Ich habe das noch einmal bei meinen Teilen getestet und eine "Check-Function" eingebaut. Ich kann Teile selektieren / auswerten. Grüße ------------------ Klaus Lörincz 0174 3439 428 Sindelfingen Germany 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.00A MM 14.00A Windows-XP Professional --- HP xw4100 3.0 GHz 2GB RAM Quadro4 980 XGL
|
erstellt am: 15. Sep. 2003 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für tdoerner
Hallo Thomas! Um das ganze fuer das gewaehlte Teil abzufragen, muss jeweils vor "ND_PART" immer ":part" stehen. Ansonsten wir nur der Wert fuer das momentan aktive Teil berechnet. (sd-call-cmds (get_vol_prop :for_part :part ND_PART :density) (sd-call-cmds (get_vol_prop :for_part :part ND_PART :mass) (sd-call-cmds (get_vol_prop :for_part :part ND_PART :volume) Wenn Du das ganze mit dem Recorder aufzeichnen laesst, und fuer die Berechnung ein anderes Teil als das nicht aktive waehlst, kommst Du auch auf dieses :part !!! (Zumindest unter HP-UX mit OSDM 11.65) Ich habe auch erst mit Hilfe von Klaus herausgefunden, wie man das Ergebnis in eine Variable schreiben kann - Vielen Dank darfuer !!! Gruss RainerH.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tdoerner Mitglied Konstrukteur
Beiträge: 57 Registriert: 22.05.2003
|
erstellt am: 15. Sep. 2003 15:33 <-- editieren / zitieren --> Unities abgeben:
Also, ein großes Danke an euch beide, jetzt hab ich's wie's sein soll. Na ja, war ne ziemlich schwere Geburt. Grüsse Thomas ------------------ alles ist machbar, der Tag hat 24h und wenn's brennt hast ja auch noch die Nacht.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 15. Sep. 2003 15:54 <-- editieren / zitieren --> Unities abgeben: Nur für tdoerner
|
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 16. Sep. 2003 07:33 <-- editieren / zitieren --> Unities abgeben: Nur für tdoerner
|
tdoerner Mitglied Konstrukteur
Beiträge: 57 Registriert: 22.05.2003
|
erstellt am: 22. Sep. 2003 16:03 <-- editieren / zitieren --> Unities abgeben:
Eine Kleinigkeit habe ich denn doch noch, habe den WM im Einsatz, wie kann ich mit den o.a. Funktionen schreibgeschützte Teile/Baugruppen auch auslesen, oder hab ich da was nicht gelesen??? Grüße Thomas ------------------ alles ist machbar, der Tag hat 24h und wenn's brennt hast ja auch noch die Nacht.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 22. Sep. 2003 16:39 <-- editieren / zitieren --> Unities abgeben: Nur für tdoerner
|