| |
| KISTERS 3DViewStation mit neuer Zerschneidefunktionen und erweitertem PMI-Support, eine Pressemitteilung
|
Autor
|
Thema: Code läuft nicht in CommandButton (1640 / mal gelesen)
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 06. Nov. 2019 19:12 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, der folgende code läuft problemlos in einem Makro. Code: Sub CATMain()Dim InputObjectType(0) Dim partDocument1 As Document Set partDocument1 = CATIA.ActiveDocument Dim part1 As Part Dim Selection As Selection Set Selection = partDocument1.Selection Dim shapeFactory1 As Factory ROT = 175 GRUEN = 255 BLAU = 175 If (Selection.count < 1) Then MsgBox " Kein Element selektiert !" + Chr(10) + Chr(10) + " Selektieren Sie jetzt ein Element und starten das Makro nochmals. " Exit Sub End If Dim MyPropSet As VisPropertySet Set MyPropSet = Selection.VisProperties MyPropSet.SetRealColor ROT, GRUEN, BLAU, 0 Selection.Clear End Sub
Wenn ich diesen in einem CommandButton ausführe bekomme ich die Meldung. "Can´t find projekt or libary" Bei "ROT = 175" Hat jemand eine Idee? ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 06. Nov. 2019 21:46 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 06. Nov. 2019 22:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, danke dir. Ist aber leider ohne Erfolg. Code: Private Sub cmdMakro1_Click() Dim InputObjectType(0) Dim partDocument1 As Document Set partDocument1 = CATIA.ActiveDocument Dim part1 As Part Dim Selection As Selection Set Selection = partDocument1.Selection Dim shapeFactory1 As Factory Dim ROT As Long Dim GRUEN As Long Dim Blau As LongROT = 175 GRUEN = 255 Blau = 175 If (Selection.Count < 1) Then MsgBox " Kein Element selektiert !" + Chr(10) + Chr(10) + " Selektieren Sie jetzt ein Element und starten das Makro nochmals. " Exit Sub End If Dim MyPropSet As VisPropertySet Set MyPropSet = Selection.VisProperties MyPropSet.SetRealColor ROT, GRUEN, Blau, 0 Selection.Clear Exit Sub End Sub
Nun bleibt es schon in der Privat Sub hängen. Ich weis nicht ob das wichtig ist. Aber ich möchte eine Farbpalette erstelle und habe mir dazu mehrer Commendbuttons angelegt und mit entsprechenden Codes gefüllt.
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joerneman Mitglied Konstrukteur
Beiträge: 140 Registriert: 19.07.2009
|
erstellt am: 07. Nov. 2019 06:35 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hallo Uwe, ich habe so ein ähnliches Makro. Mein Hauptteil sieht so aus: Code: Sub CATMain()Dim USel As Selection Set USel = CATIA.ActiveDocument.Selection If USel.Count < 1 Then Fehleranzeige.Show Else Farbgebung.Show End If End Sub
Das Private Sub für z.B Gewinde so: Code: Private Sub Gewinde_Click() Set USel = CATIA.ActiveDocument.SelectionUSel.VisProperties.SetRealColor 255, 255, 0, 1 USel.VisProperties.SetRealOpacity 255, 1 Unload Farbgebung End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 07. Nov. 2019 19:55 <-- editieren / zitieren --> Unities abgeben:
Hallo joerneman, danke für den Tip. Leider funktioniert das nicht. Wie/Wo muss ich denn die Variable dimensionieren. Ich bin Anfänger was den Umgang mit UserForms betrifft.
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 743 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 07. Nov. 2019 20:49 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hallo, du hast die Variable "Usel" nicht global, sondern nur in der Sub "CATMain" definiert. Darum kann die Sub "cmdMakro1_Click" nicht darauf zugreifen. Gruß Randle
------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 07. Nov. 2019 22:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Randle, irgendwie funktioniert das nicht. Da ist wohl der Wurm drin. Habe jetzt die Variable als Public deklariert... selbe Situation ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Nov. 2019 22:45 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
|
joerneman Mitglied Konstrukteur
Beiträge: 140 Registriert: 19.07.2009
|
erstellt am: 08. Nov. 2019 08:12 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Zitat: Original erstellt von moppesle: Hallo joerneman,danke für den Tip. Leider funktioniert das nicht. Wie/Wo muss ich denn die Variable dimensionieren. Ich bin Anfänger was den Umgang mit UserForms betrifft.
Bei mir läuft der Code so. Heißt dein Fenster mit den Schaltflächen auch "Farbgebung"? Das es mit Farbgebung.show aufgerufen wird? Versuch es mal mit der Zeile "Set Usel..." in dem Private Sub, sprich nicht auskommentieren. Edit: Habe mal ein Beispiel angehangen. [Diese Nachricht wurde von joerneman am 08. Nov. 2019 editiert.]
[Diese Nachricht wurde von joerneman am 08. Nov. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
martin2 Mitglied Konstrukteur
Beiträge: 1010 Registriert: 05.2002.27 Windows 11 / 64bit CATIA V5-6R2020 bis V5-6R2024
|
erstellt am: 08. Nov. 2019 17:37 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hallo, versuch mal folgendes: a) Du befindest Dich in der VBA-Umgebung b) Klicke auf Tools-References c) Schau nach, ob dort bei den angehakten Referenzen irgendeine (oder auch mehrere) den Namen "Missing xyz" hat. d) Falls ja - mach den Haken raus und probier's nochmal. Gruß Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 08. Nov. 2019 20:58 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, @Martin. Es waren keine Missing Referenzen vorhanden. Danke für den Tip @Joerneman Dein Code funktioniert bei mir auch. @Joerneman , @Bernd Er war bis auf CATMain identisch mit dem von Joerneman. Die CatMain hatte ich in der Form integriert. Nun dachte ich schön, lege ein Modul an und kopiere die CATMain hinein und gut iss. Doch leider funktionierte es immer noch nicht. Wenn ich nun in Joerneman´s Code die CATMain in die Form eingebaut hatte lief das Makro auch. Jetzt habe ich kurzerhand ein neues Projekt angelegt und es funktioniert wie es soll. Danke euch nochmals für die Zeit. Schönes Wochenende
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |