Autor
|
Thema: Skript im Hintergrund laufen / warten lassen (1932 mal gelesen)
|
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 21. Nov. 2007 11:56 <-- editieren / zitieren --> Unities abgeben:
ich schreibe z.Z. an einem Skript welches nicht ganz alleine Arbeiten kann. der arbeitsablauf sieht ungefaehr so aus: - skript oeffnet datei - benutzer erledigt ein paar sachen - skript macht den rest die einzelnen sachen sind schon alle fertig, nur bekomm ich den ablauf nicht hin. ich suche eine moeglichkeit, wie ich eine form/button einblenden kann, auf dem der benutzer klickt wenn er fertig ist und das skript dann weiterlaeuft. wenn ich forms/buttons einblende, dann reagiert catia nicht mehr auf mausklicks usw. das muss doch irgendwie gehen, oder? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proofin Mitglied Dpl.Ing
Beiträge: 208 Registriert: 24.11.2004
|
erstellt am: 21. Nov. 2007 12:57 <-- editieren / zitieren --> Unities abgeben: Nur für FiRo
Moin FiRo, wie blendest du dein Form ein?? Es gibt für das Show 2 Modi: form1.show() und form1.show(vbModal) Form is modal keine Aktionen in Catia möglich form1.show(vbModeless) Form wird angezeigt und man kann mit Catia arbeiten. Ich das hilft weiter.
Gruß Proofin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 21. Nov. 2007 13:17 <-- editieren / zitieren --> Unities abgeben:
mir war bis jetzt neu, dass es ueberhaupt parameter fuer 'show' gibt 'vbModeless' tut auch wunderbar (wenn ich z.b. mit selectElement sachen auswahle), nur nicht in dem kontext. wenn ich jetzt das fenster einblende (auf dem ein hinweis fuer den benutzer steht), soll das skript erst dann weiterlaufen, wenn der benutzer den enstp. button drueckt. 'vbModeless' laesst das skript aber weiterlaufen ohne auf das 'ok' des benutzers zu warten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ize Mitglied Student
Beiträge: 28 Registriert: 27.09.2007
|
erstellt am: 21. Nov. 2007 13:37 <-- editieren / zitieren --> Unities abgeben: Nur für FiRo
|
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 21. Nov. 2007 13:39 <-- editieren / zitieren --> Unities abgeben:
glaub mir .. das wuerde ich auch machen. aber die anforderung 'von oben' sind: "dau-sicher" d.h. ein knopf der alles kann und bei dem man nix falsch machen kann. das mit dem aufteilen ist bei vb eh so ne geschichte. ich hab damit erst angefangen und bin OO gewoehnt...ich verzweifel hier regelmaessig Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ize Mitglied Student
Beiträge: 28 Registriert: 27.09.2007
|
erstellt am: 21. Nov. 2007 14:13 <-- editieren / zitieren --> Unities abgeben: Nur für FiRo
was isses denn genau? CATScript? catvbs? oder nen externes prog mit vba? hast vorhin was von form gesagt? hab auch erst vor 3 monaten damit angefangen und die api is der letzte mist, von catia und von vb :P da is mir java oder sowas um einiges lieber, aber was sein muss muss sein Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proofin Mitglied Dpl.Ing
Beiträge: 208 Registriert: 24.11.2004
|
erstellt am: 21. Nov. 2007 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für FiRo
was du auch noch machen kannst, ist eine Endlosschleife die eine Variable überprüft. Ungefähr so: Code: ' show the user interface Call frmMain.Show(vbModeless) ' stay in this method Do DoEvents If bExit = True Then Exit Do End If Loop
Wenn dein Skript dann fertig ist wird die Variable gesetzt und die Schleife verlassen. Solange kannst dann ganz normal mit der Form arbeiten. Ist zwar keine schöne Lösung funktioniert aber. Gruß Proofin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 21. Nov. 2007 14:34 <-- editieren / zitieren --> Unities abgeben:
@ize: ich vermute es ist catvbs oder catia script. keine ahnung wo der unterschied ist. "schoene heile java-welt" @proofin: hab mich schon dran gewohnt unschoen zu programmieren, aber busy-waiting...das kann ich fast mit meinem gewissen nicht vereinbaren. gibt's vllt sowas wie sleep(1), so dass die schleife nur einmal pro sekunde durchlaufen wird? edit: hab grad festgestellt (vllt fuer andere auch interessant): busy-waiting: - rechte maustaste geht nicht - geoeffnete dokumente werden und 'windows' nicht angezeigt - manche funktionen (z.b. disassemble) tun nicht - part.update tut nicht - strg+c tut =) ------------------ no milk today... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ize Mitglied Student
Beiträge: 28 Registriert: 27.09.2007
|
erstellt am: 21. Nov. 2007 15:24 <-- editieren / zitieren --> Unities abgeben: Nur für FiRo
|
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 21. Nov. 2007 15:42 <-- editieren / zitieren --> Unities abgeben:
hmm .. keine schlechte idee eigentlicht. scheint wohl auch nicht anders zu gehen. dann muss jeder user den toolbarbutton haben, aber ich glaub daran arbeiten andere ------------------ no milk today... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 21. Nov. 2007 23:25 <-- editieren / zitieren --> Unities abgeben: Nur für FiRo
Hallo FiRo, ich hätte da noch eine Idee, habe aber nicht getestet, ob es überhaupt geht! Du könntest doch am Ende vom ersten Script das 2.Script bzw. den 2.Teil vom Script in die Datei packen und einen Parameter mit 2 Werten erstellen, den der User nach seiner Arbeit umstellen muss. Dann noch eine Regel dazu, die das Script nach Umstellen des Parameters ausführt und dann darf der User loslegen. Ist er fertig, stellt er den Parameter um und das 2.Script wird ausgeführt. Knackpunkte hierbei sind zum Einen, ob es überhaupt funktionieren kann, und zum Zweiten, wie man das Script wieder los wird, d.h. wie es wieder aus der Datei entfernt wird. Wie gesagt, ist nur so eine Idee... mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 22. Nov. 2007 07:18 <-- editieren / zitieren --> Unities abgeben: Nur für FiRo
Moin FiRo, mit CATScript oder anderen Makros, die in CATIA selbst ablaufen, kommst du nicht weit. Mit VB6.0 oder .NET kannst du umsetzten, was du ganz oben beschreibst, da die Scripte hier als eigenständiger Prozeß (also aussehrhalb von CATIA) ablaufen und selbiges nicht zwangsweise blockieren. Bsp. nebenstehend. Frm.frm ist der Quellcode (in VB6), Test.exe die ausführbare Datei, falls du kein VB hast. Hoffe es ist das, was du suchst. Gruß TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 26. Nov. 2007 10:28 <-- editieren / zitieren --> Unities abgeben:
vielen dank fuer eure antworten. das skript werde ich jetzt aufteilen. ist wohl erstmal die einfachste loesung. vb6 und .net werde ich mich mir mal noch anschauen. das scheint ja schon ziemlich maechtig zu sein. ------------------ no milk today... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |