Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro zwischenzeitlich anhalten

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
Autor Thema:  Makro zwischenzeitlich anhalten (3562 mal gelesen)
AlfaRomeo75
Mitglied
Dipl.Ing. - Flächenkonstrukteur/Methodenplaner


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

Beiträge: 174
Registriert: 06.12.2004

-----------------
Windows XP professional Version2002
Service Pack 2
-----------------
CATIA V5 R16 SP5
-----------------
Intel Pentium 4 3,4GHz
4 GB RAM
-----------------

erstellt am: 19. Aug. 2005 13:23    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,
habe das Problem meines letzten Beitrages "Neues Part als CATIA.ActiveDocument" eingrenzen können! Stehe aber nun schon wieder vor einem Neuen.
Hier nochmal ein Code der das Problem verdeutlichen soll:

Sub CATMain()
 
    Dim documents1 As Documents
    Set documents1 = CATIA.Documents
   
    Dim partDocument1 As Document
    Set partDocument1 = documents1.Add("Part")
           
    Dim part1 As Part
    Set part1 = partDocument1.Part
       
    Dim hybridBodies1 As HybridBodies
    Set hybridBodies1 = part1.HybridBodies
 
    Dim OpenBody1 As HybridBody
    Set OpenBody1 = hybridBodies1.Add()
    OpenBody1.Name = "xyz"
 
    Dim hybridShapeFactory1 As Factory
    Set hybridShapeFactory1 = part1.HybridShapeFactory
   
    Dim hybridShapePointCoord1 As HybridShapePointCoord
    Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(100,50,75)
   
    Dim hybridBody1 As HybridBody
    Set hybridBody1 = hybridBodies1.Item("xyz")
   
    hybridBody1.AppendHybridShape hybridShapePointCoord1
   
    part1.InWorkObject = hybridShapePointCoord1
   
    part1.Update

    Dim Selection1
    Set Selection1 = CATIA.ActiveDocument.Selection
    Selection1.Clear
    Selection1.Add (hybridShapePointCoord1)
   
    MsgBox(Selection1.Item(1).Value.Name)
   
    Set visPropertySet1 = Selection1.VisProperties
    visPropertySet1.SetShow 1
     
    part1.Update
   
    End Sub

Startet man das Makro in einem leeren CATIA meckert es erstmal die Methode CATIA.ActiveDocument an.
Wenn bereits ein Part geöffnet war, wird auch ein neues Part erzeugt in dem ein Punkt erzeuget wird der ausgeblendet wird!
Dieser Punkt wird aber nur ausgeblendet (NOSHOW) wenn man erst den neuen Partnamen eingibt und dann die MsgBox wegklickt.
Macht man es andersrum funzt es nicht. Er meckert zwar nicht aber der Punkt wird nicht ausgeblendet.
Offensichtlich arbeitet CATIA das Makro im Hintergrund weiter ab, obwohl der User den neuen Partnamen noch nicht eingegeben hat. Das erklärt auch die Fehlermeldung mit "CATIA.ActiveDocument".
Meine Frage wäre: Besteht die Möglichkeit das Makro so lange anzuhalten bis der User den Namen eingegeben hat. Falls nicht würde mich interessieren ob man bei der Parterzeugung den Partnamen im Makro vorgeben kann. Add("Part","Name") funktioniert nicht wie im Produkt.

Siehe auch mein oben erwähntes Posting!

Viele Grüße und allen ein Schönes Wochenende!
Thomas
 

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

MaxZ
Mitglied
Computer Aided Designer


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

Beiträge: 125
Registriert: 24.05.2005

erstellt am: 19. Aug. 2005 14:23    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hallo!

Ich hab deinen Code mal ausprobiert und etwas geändert und bei mir klappt ansich jetz alles was du möchtest glaub ich.
Kein Teil offen, eins erzeugen, umbenennen, openbody erzeugen, umbenennen, punkt erzeugen, punkt verstecken.

Copy und Paste mal den Code:

Sub CATMain()
    Set documents1 = CATIA.Documents
    Set partDocument1 = documents1.Add("Part")      
    Set part1 = partDocument1.part   
    hlp = part1.Name       
    Set partDocument1 = CATIA.ActiveDocument
    Set product1 = partDocument1.GetItem(hlp)
    product1.PartNumber = "test_Number"        
    Set hybridBodies1 = part1.HybridBodies 
    Set OpenBody1 = hybridBodies1.Add()   
    OpenBody1.Name = "xyz" 
    Set hybridShapeFactory1 = part1.HybridShapeFactory   
    Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(100, 50, 75)   
    Set hybridBody1 = hybridBodies1.Item("xyz")   
    hybridBody1.AppendHybridShape hybridShapePointCoord1   
    part1.InWorkObject = hybridShapePointCoord1   
    part1.Update
    Set Selection1 = CATIA.ActiveDocument.Selection   
    Selection1.Clear   
    Selection1.Add hybridShapePointCoord1   
    'MsgBox Selection1.Item(1).Value.Name   
    Set visPropertySet1 = Selection1.VisProperties   
    visPropertySet1.SetShow 1     
    part1.Update   
End Sub

Habs allerdings als catvba ausprobiert, nicht als catscript.
Vielleicht hilfts,

Ciao
Max


<edit> V5 R12 SP6 </edit>

[Diese Nachricht wurde von MaxZ am 19. Aug. 2005 editiert.]

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 21. Aug. 2005 15:25    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hallo Thomas,

ich habe deinen neuen Post erst gelesen, nachdem ich den alten bereits beantwortet hatte. Hier sind wir also schon einen Schritt weiter.

Du kannst in den Tools Options die Einstellung so ändern, das nicht mehr nach einem Namen gefragt wird, wenn du ein neues Teil erzeugst.
Die msgbox mit der Abfrage nach dem Namen erscheint dann nicht mehr.

Ab R14 ist das Problem behoben (unabhänig von der Einstellung in den Tools Options)

An Max: Hast du die entsprechende Einstellung in den Tools Options oder kommt die Abfrage nach dem neuen Namen bei dir auch noch?

Gruss
TomTom

------------------
tomtom1972

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

MaxZ
Mitglied
Computer Aided Designer


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

Beiträge: 125
Registriert: 24.05.2005

erstellt am: 22. Aug. 2005 07:33    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Guten Morgen Tomtom!

Hab bei mir die Option auf "nicht-nach-neuem-Namen-fragen" gesetzt, drum kommt bei mir die Abfrage nicht. ob sie kommt wenn nach neuem Namen gefragt werden soll weiß ich nicht.

Ciao
Max

------------------
--- Der frühe Vogel fällt nicht weit vom Stamm. ---

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

AlfaRomeo75
Mitglied
Dipl.Ing. - Flächenkonstrukteur/Methodenplaner


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

Beiträge: 174
Registriert: 06.12.2004

-----------------
Windows XP professional Version2002
Service Pack 2
-----------------
CATIA V5 R16 SP5
-----------------
Intel Pentium 4 3,4GHz
4 GB RAM
-----------------

erstellt am: 22. Aug. 2005 11:53    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


Bild2.JPG

 
Hallo Max,
habe deinen Code kopiert und gesichert. Leider ohne Unterschied zu meinem. Beim ersten Durchlauf ohne bereits ein Dokument geöffnet zu haben läuft das Makro nicht durch und es erscheint wieder die Fehlermeldung(siehe Bild). Falls bereits ein Dokument geöffnet ist, kommt zwar keine Fehlermeldung aber es wird auch nichts ausgeblendet. Vermutlich weil sich die Selection auf das bereits geöffnete Dokument bezieht!

Hallo TomTom,
wo finde ich denn den Schalter unter Tools/Optionen? Hab gerade schon gesucht aber leider nicht gefunden.

Gruß,
Thomas

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

MaxZ
Mitglied
Computer Aided Designer


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

Beiträge: 125
Registriert: 24.05.2005

erstellt am: 22. Aug. 2005 11:59    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Das ist schon seltsam.
Wie gesagt, ich habs als CATvba laufen lassen und grad erst
als CATScript getestet. Klappt bei mir aber beides Fehlerfrei.
Evtl. liegts echt an dem Schalter.

Ciao
Max

------------------
--- Der frühe Vogel fällt nicht weit vom Stamm. ---

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

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. Aug. 2005 15: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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hallo,

ToolsOptions>Infrastructure>ProductStructure>ProductStructure>PartNumber>ManualInput  nicht markieren = aus

Gruss
TomTom

------------------
tomtom1972

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

AlfaRomeo75
Mitglied
Dipl.Ing. - Flächenkonstrukteur/Methodenplaner


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

Beiträge: 174
Registriert: 06.12.2004

-----------------
Windows XP professional Version2002
Service Pack 2
-----------------
CATIA V5 R16 SP5
-----------------
Intel Pentium 4 3,4GHz
4 GB RAM
-----------------

erstellt am: 23. Aug. 2005 11:45    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 TomTom, hallo Max!
Habe unseren Administrator gebeten, die Änderung in den Tools/Optionen vorzunehmen und siehe da es funktioniert!
Es liegt also definitiv an dem Schalter! Die Frage ist jetzt nur noch, ob jemand eine Möglichkeit weiß, wie man so etwas unterbinden kann. Lässt sich ein Makro anhalten bis eine bestimmte Usereingabe gemacht worden ist? Es ist ja wohl offensichtlich so, das das Makro im Hintergrund weiterläuft, auch wenn noch kein neuer PartName eingegeben ist und so zwangläufig eine Fehlermeldung (Method ActiveDocument failed) kommen muss, falls noch kein Part existiert.
So ganz verstehe ich das sowieso nicht, da ich bei einer Inputbox doch auch Variablen Werte zuweisen kann die anschliessend dann korrekt verarbeitet werden. Naja, mal sehen ob jemand eine Lösung weiß! Vielleicht kann man es über eine Schleife lösen ...

Gruß,
Thomas

------------------
-------------------------------------------------

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

AlfaRomeo75
Mitglied
Dipl.Ing. - Flächenkonstrukteur/Methodenplaner


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

Beiträge: 174
Registriert: 06.12.2004

-----------------
Windows XP professional Version2002
Service Pack 2
-----------------
CATIA V5 R16 SP5
-----------------
Intel Pentium 4 3,4GHz
4 GB RAM
-----------------

erstellt am: 23. Aug. 2005 14:23    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 nochmal!
Habe gerade eine Billig-Lösung für das Problem gefunden!

Zuerst hatte ich an eine Schleife gedacht die solange läuft bis der Variablen "Partname" ein Wert zugewiesen wird. Funktioniert aber leider nicht, da CATIA der Variablen "Partname" sofort einen Wert zuweist auch wenn der User noch nicht "OK" gedrückt heisst.
Wenn man ein neues Part erzeugt erscheint ja eine Inputbox in der ein Defaultname eingetragen ist (z.B. PART1). Dieser Wert wird sofort zugewiesen.

Meine "Billig-Lösung" ist einfach ein Messagebox zu öffnen, die erst weggeklickt werden darf nachdem der Partname eingegeben ist.
Hat bei mir funktioniert! Nun ist es egal ob bereits ein Part geöffnet ist oder nicht! Is' zwar sehr unelegant wie ich finde, aber mit fällt z.Zt nichts besseres ein!

Sub CATMain()

  Dim documents1 As Documents
  Set documents1 = CATIA.Documents
 
  Dim partDocument1 As Document
  Set partDocument1 = documents1.Add("Part")
 
  Dim part1 As Part
  Set part1 = partDocument1.Part
 
  MsgBox ("Achtung! Bitte erst den Namen des neuen Parts eingeben und dann diese Box wegklicken!")
 
  Dim hybridBodies1 As HybridBodies
  Set hybridBodies1 = part1.HybridBodies

  Dim OpenBody1 As HybridBody
  Set OpenBody1 = hybridBodies1.Add()
  OpenBody1.Name = "xyz"

  Dim Selection1 as Selection
  Set Selection1 = CATIA.ActiveDocument.Selection
  Selection1.Clear
  Selection1.Add (OpenBody1)
 
  Set visPropertySet1 = Selection1.VisProperties
  visPropertySet1.SetShow 1

  part1.Update
 
End Sub


Ich hoffe von Euch hat jemand eine bessere Lösung !!!

Gruß
Thomas

------------------
-------------------------------------------------

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 05. Nov. 2015 12:04    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hallo zusammen
Zitat:
Original erstellt von AlfaRomeo75:
Meine "Billig-Lösung" ist einfach ein Messagebox zu öffnen, die erst weggeklickt werden darf nachdem der Partname eingegeben ist.
Hat bei mir funktioniert! Nun ist es egal ob bereits ein Part geöffnet ist oder nicht! Is' zwar sehr unelegant wie ich finde, aber mit fällt z.Zt nichts besseres ein!


Wie ist es möglich, irgendwelche Aktionen in Catia von Hand durchzuführen während die Msgbox auf dem Bildschirm ist?
Bei mir lässt sich nichts anklicken solange die Msgbox offen ist. 

Gruß
Peter

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 05. Nov. 2015 12:21    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hi Peter,

welche Aktionen, bitte?

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 05. Nov. 2015 12:27    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Ein Produkt soll als CATPart manuell erstellt werden und das Makro danach weiterlaufen.
Da ich momentan keine andere Lösung finde wollte ich das Makro über die Msgbox anhalten und nach der manuellen ProductToPart Umwandlung wieder weiterlaufen lassen.

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 05. Nov. 2015 12:36    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hi Peter,

was hältst Du von (ungetestet):

Catia.Startcommand "Generate CATPart from Product..."
Catia.refreshdisplay=true

oder dem hier:

http://ww3.cad.de/foren/ubb/Forum137/HTML/005829.shtml

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 05. Nov. 2015 13:24    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Diese Funktion ist laut DS leider ab ab V5R24Sp01 nicht mehr verfügbar ohne das Zusatzprodukt "DF1".
Deshalb muss diese ProduktToPart Umwandlung manuell stattfinden...

Ist es irgendwie möglich das so zu tun während die Msgbox auf dem Bildschirm ist?

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 05. Nov. 2015 13:32    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hi peter,

jetzt weisst Du, wozu das Makro gut ist.

Wenn Du's  aber unbedingt manuell auslösen willst:
Anstelle einer (modalen) MsgBox, mach Dir eine Userform mit OK und Cancel und zeig sie 'vbmodeless', also:

Code:

UserForm1.Show vbModeless

Die MsgBox lässt nur 'vbmodal' zu.

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 05. Nov. 2015 17:40    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Vielen Dank Joe, das war eine gute Idee  

Jetzt habe ich aber das Problem, das das Makro bei dem Aufruf "UserForm1.Show vbModeless" nicht anhält, sondern einfach weiterläuft,
obwohl ich in der UserForm ShowModal auf false gestellt habe. 

[Diese Nachricht wurde von Peter91 am 05. Nov. 2015 editiert.]

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 05. Nov. 2015 18: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 Nur für AlfaRomeo75 10 Unities + Antwort hilfreich

Servus
Und wenn du in der Userform ein CommandButton einfügst, das dann das weitere Makro (also der Rest) erst aufruft?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 05. Nov. 2015 18:25    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Vielen Dank Bernd, so funktioniert es 

Gruß
Peter

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 05. Nov. 2015 18:27    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Edit:

So war's auch gedacht.
Wenn Du unbedingt die Form nur zum Pausieren :-) verwenden willst:
'-------------------------------schnipp----------------------------

Hallo Peter,

hab ich gesagt, dass Du in den Form-Properties Showmodal verändern sollst? >:-|
Lass das bitte mal auf 'True'.

Aufruf der Form(MsgBox) zB:

Code:

Public bFinished as boolean

Sub CATMain()

   bFinished = False

   UserForm2.Show vbModeless

   do
      if bFinished = true exit do
      doevents      '  <-- wichtig! sonst blockierst Du mit der Schleife das Makro
   loop
End Sub


In 'UserForm2_Initialize()' geht's dann weiter.

Wenn Du mit Deiner PtoP-Umwandlung fertig bist, klickst Du auf OK.
In der Routine für OK_Click setzt Du dann bFinished = True.

Hope it helps,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

SteelNinja
Mitglied
Student - Maschinenbau

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

Beiträge: 9
Registriert: 03.02.2016

Catia V5R18
Catia V5R21
Catia V5R25

erstellt am: 21. Mrz. 2016 10:08    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hallo zusammen,

ich wollte auch über eine UserForm mein Makro anhalten.
Wird benötigt, damit der User die Baugruppe richtig im Bildschirm einpassen kann (je nach Wunsch) und danach werden automatisch Screenshots erstellt.
Da die Screenshots nur optional sind, würde ich das gerne so einbauen.

Habe obiges Makro dann so umgebaut, dass es in VBA bei mir ohne Fehlermeldung läuft.
Erstmal nur einzeln, um die Wartefunktion zu testen.

Code:
Dim bFinished As Boolean
Sub CATMain()

  bFinished = False

  UserForm1.Show vbModeless

  Do
      If bFinished = True Then
      UserForm1.Hide
      Exit Do
      End If
      DoEvents      '  <-- wichtig! sonst blockierst Du mit der Schleife das Makro
  Loop
 
MsgBox "Macro Done", vbInformation
 
End Sub


Der Code meiner Userform sieht dann so aus.
Dabei ist bFinish der Button Name.

Code:
Private Sub bFinish_Click()
bFinished = True
End Sub

Wenn ich dann auf "OK" klicke, passiert aber nichts. Wenn ich allerdings per Makro bFinished = True setze, wird das Makro sauber durchgewunken - nur halt ohne Wartezeit...
In einem Excel Beispiel, dass ich gefunden habe, wurde auch nicht mehr deklariert und dieses scheint zu funktionieren...

Muss ich das Makro mit der Userform doch noch extra verbinden? Oder stehe ich einfach nur aufm Schlauch?

Schon mal vielen Dank und Grüße
Patrick

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 21. Mrz. 2016 11: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 AlfaRomeo75 10 Unities + Antwort hilfreich


dlg.PNG

 
Hi Ninja,

kommt mir so bekannt vor ...?

Probier mal:
Im Code der Hauptform(Modul geht wahrscheinlich auch):

Code:

  Load frmWaitDlg                                    'makro anhalten
                                                      'wait for form to close
  Unload frmWaitDlg                                  'weiter, nachdem beendet


Der Code von frmWaitDlg sieht dann so aus:
Code:

Option Explicit
Dim bFinished  As Boolean

Private Sub btnOK_Click()
  bFinished = True
End Sub

Private Sub UserForm_Initialize()
  Caption = strMacroName & " " & strMacroVers
  lblWaitDlg.Caption = "Create external parameters in drawing." & vbCrLf _
      & "Click 'OK' when finished."

  Me.Show vbModeless
 
  Do
      If bFinished = True Then Exit Do
      DoEvents
  Loop
 
  Me.Hide
 
End Sub



wobei die Makro-Konstanten im Modul deklariert sind als
Code:

'macro constants
Public Const strMacroName As String = "ParmDoctor"        'macro name
Public Const strMacroVers As String = "V1.2"              'macro version


Der Dialog sieht so aus -->

Hope it helps,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

SteelNinja
Mitglied
Student - Maschinenbau

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

Beiträge: 9
Registriert: 03.02.2016

Catia V5R18
Catia V5R21
Catia V5R25

erstellt am: 21. Mrz. 2016 12:54    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Was soll man dazu sagen?!

Funktioniert einwandfrei.
Danke Joe

Auch danke für den Hinweis mit dem Zeilenumbruch im Code "_" den kannte ich bis jetzt auch nicht.

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

89marbru
Mitglied



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

Beiträge: 25
Registriert: 13.06.2016

Catia V5R21
Windows 7
catvba

erstellt am: 14. Jun. 2016 10:26    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hi,

danke für das Makro. Ist genau das was ich gesucht habe und funktioniert top.

Kannst du mir bitte zu folgender Zeile deines Codes noch etwas sagen:

lblWaitDlg.Caption = "Create external parameters in drawing." & vbCrLf _
      & "Click 'OK' when finished."

"lblWaitDlg" erkennt er bei mir nicht. Wie ist die Variable definiert? Zurzeit habe ich die Zeile auskommentiert und "bFinished = True" manuell gesetzt um das Makro zu testen.

Vielen Dank schon mal!

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 14. Jun. 2016 10:36    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Servus
"lblWaitDlg" ist wohl der Name der Userform (zB bei dir Userform_1)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 14. Jun. 2016 10:49    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 AlfaRomeo75 10 Unities + Antwort hilfreich


Dlg.PNG

 
Hi marbru,

mit 'lbl' kennzeichne ich gewöhnlich Label.
Der Name der Form lautet 'frmWaitDlg';
die Caption wird im Code gesetzt.

Der Dialog sieht aus wie im Bild ->

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

89marbru
Mitglied



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

Beiträge: 25
Registriert: 13.06.2016

Catia V5R21
Windows 7
catvba

erstellt am: 14. Jun. 2016 11:17    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hi,

mit den beiden Tipps und der richtigen Zuweisung des Buttons klappt es jetzt einwandfrei. Genau das was ich gesucht habe.

Danke für die Hilfe!

Viele Grüße,
Marbru

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

89marbru
Mitglied



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

Beiträge: 25
Registriert: 13.06.2016

Catia V5R21
Windows 7
catvba

erstellt am: 14. Jun. 2016 16:17    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Guten Tag zusammen,

so das mit dem Pausieren klappt wunderbar. Da ich bei jedem Pausieren in die UserForm einen anderen Text mit Anweisungen schreiben möchte, würde ich gerne den Text der UserForm als Variable definieren den ich dann zuvor setze. Mein Module soll dann die UserForm mit einer Variable aufrufen.

Mit Public Const funktioniert die Übergabe von "Module" an "UserForm" super aber ich kann die Public Const nicht im Code ändern. Ich hab auch schon im Forum und Internet geschaut aber konnte nichts passendes finden was funktioniert hat.

Ich will etwas das wie folgt aussieht:

Sub CATMain()
.
.
.
name_pub_1 = "Hallo"      'dieser Text soll dann in der UserForm stehen
Load frmWaitDlg                                    'makro anhalten
Unload frmWaitDlg                                  'weiter, nachdem beendet
.
.
.
name_pub_2 = "Hi"      'dieser Text soll dann in der UserForm stehen
Load frmWaitDlg                                    'makro anhalten
Unload frmWaitDlg                                  'weiter, nachdem beendet
.
.
.
End Sub


Habt ihr da eine Idee? Notfalls müsste ich halt für jede Pause eine eigene UserForm erstellen, das klappt aufjedenfall.

Danke schön und einen schönen Tag,
Marbru

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 14. Jun. 2016 16:50    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Hi,

Zitat:

ich kann die Public Const nicht im Code ändern


Nachdem Du die Variable als konstant definiert hast, kann's nicht gehen ;-)

Ich klau jetzt kurz von mir selbst:

Probier mal:
Im Code der Hauptform(Modul geht wahrscheinlich auch):

Code:

      strDlg="Hallo"                              'definieren des Dialog-Textes
      Load frmWaitDlg                                    'makro anhalten
                                                          'wait for form to close
      Unload frmWaitDlg                                  'weiter, nachdem beendet

Der Code von frmWaitDlg sieht dann so aus:

Code:

    Option Explicit
    Dim bFinished  As Boolean

    Private Sub btnOK_Click()
      bFinished = True
    End Sub

    Private Sub UserForm_Initialize()
      Caption = strMacroName & " " & strMacroVers
      lblWaitDlg.Caption = strDlg & vbCrLf _
          & "Click 'OK' when finished."

      Me.Show vbModeless
   
      Do
          If bFinished = True Then Exit Do
          DoEvents
      Loop
   
      Me.Hide
   
    End Sub


wobei die Makro-Konstanten im Modul deklariert sind als

Code:

    'macro constants
    Public Const strMacroName As String = "ParmDoctor"        'macro name
    Public Const strMacroVers As String = "V1.2"              'macro version
    Public strDlg As String                                  'der Dialog-Text

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

89marbru
Mitglied



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

Beiträge: 25
Registriert: 13.06.2016

Catia V5R21
Windows 7
catvba

erstellt am: 15. Jun. 2016 08:48    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 AlfaRomeo75 10 Unities + Antwort hilfreich

Eingebaut und funktioniert :-)

Vielen Dank! Haha ja klar, wenn die Variable konstant ist kann es ja nicht klappen. Ich hatte dies gestern auch schon bemerkt aber keine Lösung gefunden.

Danke nochmal =D

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