Zitat:
Original erstellt von vobu:
mitlaufende Kalkulation?
nein, ja .
Also out-of-the-box: nein
Aber im Gegensatz zu manch anderem CAD System bekommen wir in Modeling mit Common Lisp und dem IKIT beinahe alles hin! 🙂
Wir haben da so Events im Modeling! Die kann man in dem Fall gut nutzen:
https://support.ptc.com/help/creo_elements_direct/r20.8.0.0/advanced_documentation/integration_kit/reference/events.html#standard-events
Grob:
- ins *SD-ENTER-COMMAND-EVENT* hängst Du eine Funktion, die sich das current part schnappt, sd-inq-curr-part, und die Calulation durchführt.
Da brauchst du natürlich Eure eigene Formel für.
- im ersten Schritt gibt diese Funktion die Kosten mal einfach mit einem print (oder ein format T) in der Console aus. (= Proof of Concept)
- im nächsten Schritt baust Du dir ein UI mit dem UICT .. sd-create-dialog-shell .. grid . area . usw.
und sorgst dafür das dieses angezeigt wird. (sd-show-dialog-shell usw.) (evtl mal beim laden, oder über die commandline)
- nun kann deine (do-my-cost-calulation) Funktion den EURO Aufwand in ein text control in der neuen dialog-shell immer wieder updaten.
So ist es permanent sichbar (aber auch verschiebbar!) - im nächsten Schritt baust Du dir in dein cost-Calulation UI einen select button ein, damit du nicht mehr auf current-part festgelegt bist
- deine (do-my-cost-calulation) Funktion muss dann halt statt (sd-inq-curr-part) auf diese Selektion reagieren (das könnte dann sogar ne Baugruppe sein)
ausserdem hast du dann auch eine Anzeige für welches Objekt die Calulation durchgeführt wird. - das ganze triggerst du noch über einen Dialog, der
beim Starten das selbst gebaute User Interface anzeigt (sd-show-dialog-shell), und die Funktion ans event hängt.
.. und sich dann beendet - in dem selbst gebautem User Interface gibt es dann auch noch einen "Stop" sd-create-pushbutton-control , welcher ein unsubsrcibe macht, und das selbst gebaute User Interface wieder versteckt (sd-hide-dialog-shell)
Hint: das *SD-INTERACTIVE-EVENT* wird sehr häufig gerufen. Wenn du das nutzen möchstest solltest du ne Zeitverzögerung einbauen. Das o.g. event ist hier empfehlenswerter.
Laube = fertig
------------------
● Firefox ESR ● Java Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● BuFDi ●
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP