Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Catia-Checkbox über winapi ansprechen schlägt fehl

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:  Catia-Checkbox über winapi ansprechen schlägt fehl (1286 mal gelesen)
Tom667
Mitglied
CAD-Methodiker


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

Beiträge: 10
Registriert: 16.02.2018

Core i7-7820HQ - 32GB RAM
nvidia Quadro P3000
Win 10 Pro
Catia R19-R29 / 3DX_2020x
VB.net/VBA/CATScript/KWA/KBE/RPA

erstellt am: 30. Okt. 2019 10: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


winapi_checkbox.jpg

 
Hallo winapi-Experten,

ich möchte in VBA über die winapi/win32 die checkbox "Merge all bodies of each part in one body" der Catia-Funktion "Generate CATPart from Product" ansprechen.
Funktioniert soweit - allerdings nur "optisch", also auf der GUI. D.h. die checkbox wird wie gewünscht über die winapi an- bzw. abgewählt, aber Catia akzeptiert die Eingabe nicht.
Nach dem Bestätigen des Dialogfensters mit "OK" wird die Funktion "Generate CATPart from Product" normal ausgeführt - allerdings wird die winapi-Änderung an der checkbox ignoriert.

konkretes Bsp.:
Die Winapi schaltet die (zuvor ausgeschaltete) Checkbox EIN, das Ergebnis nach Ausführen von "Generate CATPart from Product" ist aber als wäre die checkbox ausgeschaltet gewesen (siehe Bild im Anhang).

(Da sich Catia die letzte Einstellung der checkbox merkt, bestätigt ein erneute Öffnen der Funktion "Generate CATPart from Product", dass die Änderung der checkbox nicht angenommen wurde. Hier steht die checkbox wieder auf AUS).

Wie schaffe ich es, dass Catia die Änderung an der checkbox über winapi schluckt?

Mein Code (debug-fähig):

Code:

Option Explicit

Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Const GW_HWNDCHILD = 5
Const GW_HWNDLAST = 1
Const BM_SETCHECK = 241
Const BST_CHECKED = &H1

Sub CATMain()
    Dim hWnd As Long
    hWnd = FindWindow(vbNullString, "Generate CATPart from Product")
    'folgende handler über GetWindow, da FindWindowEx hier nicht funktionert
    Dim hOK As Long
    hOK = GetWindow(hWnd, GW_HWNDCHILD)
    Dim hPartOptions As Long
    hPartOptions = GetWindow(hOK, GW_HWNDLAST)
    Dim hMerge As Long
    hMerge = GetWindow(hPartOptions, GW_HWNDCHILD)
   
    Call SendMessage(hMerge, BM_SETCHECK, BST_CHECKED, 0)
End Sub


(CatiaV5 R24 SP4 HF88)

Danke und Grüße,
Tom

------------------
Tom

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

Tom667
Mitglied
CAD-Methodiker


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

Beiträge: 10
Registriert: 16.02.2018

Core i7-7820HQ - 32GB RAM
nvidia Quadro P3000
Win 10 Pro
Catia R19-R29 / 3DX_2020x
VB.net/VBA/CATScript/KWA/KBE/RPA

erstellt am: 06. Nov. 2019 07:46    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

Servus zusammen,

ich konnte dank cad.de schon einige spezielle Programmieraufgaben lösen, für die ich nirgends anders eine Lösung gefunden habe. Bin begeistert von dem Forum.
Da dies (oben) mein erster eigener Beitrag ist, bin ich jetzt etwas überrauscht : habe ich die Frage falsch gestellt oder ist das Thema zu speziell? Hat tatsächlich niemand eine Idee?
(hätte wohl mit einer einfacheren Frage einsteigen sollen )

Jegliches feedback wäre sehr willkommen 
Mir würde schon weiterhelfen, wenn jemand das Verhalten bestätigen könnte. Wäre sehr wenig Aufwand, da der Code so wie oben gepostet so lauffähig ist. Dann kann ich zumindest ausschließen, dass es an irgendwelchen Systemeinstellungen hier liegt.

Grüße, Tom

------------------
Tom

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 07. Nov. 2019 09: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 Tom667 10 Unities + Antwort hilfreich

Moin,

ich habe deinen Code gerade mal in V5R21 getestet und kann das von dir beschriebene Verhalten bestätigen. Leider habe ich was das Ansprechen von CATIA Dialogen in dieser Art keine Erfahrungen.

Sorry!

Nachtrag: Habe gerade gemerkt das CATIA die Bodies auch nicht zusammenbaut wenn ich die Checkbox von Hand aktiviere. Mit welchem Release bist du diesbezüglich unterwegs?

Nachtrag 2: R27 = selbes Verhalten.

Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

[Diese Nachricht wurde von Randle am 07. Nov. 2019 editiert.]

[Diese Nachricht wurde von Randle am 07. Nov. 2019 editiert.]

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

Tom667
Mitglied
CAD-Methodiker


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

Beiträge: 10
Registriert: 16.02.2018

Core i7-7820HQ - 32GB RAM
nvidia Quadro P3000
Win 10 Pro
Catia R19-R29 / 3DX_2020x
VB.net/VBA/CATScript/KWA/KBE/RPA

erstellt am: 11. Nov. 2019 07:02    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

Hi Randle,
danke für deinen Test.
Ich arbeite gerade in CatiaV5 R24 (SP4 HF88).

Das Verhalten, dass Catia nichtmal beim manuellen Aktivieren der Checkbox die Bodies zusammenbaut, kann ich nicht bestätigen. Das funktioniert bei mir immer.
Sorry für die blöde Frage, aber bist du sicher, dass du darauf geachtet hast: Nur Bodies aus ein und demselben Part werden zusammengebaut. Funktioniert also nur, wenn du mehrere Bodies (oder Geosets) ein einem Part hast.

Habe das von dir beschriebene Verhalten ("manuell") und meinen Code jetzt nochmal in R18 (SP8 HF33) und R29 (SP3 HF5) getestet. Selbes Ergebnis: Manuell funktioniert's immer, per Code nie.
Mein Problem scheint also Release-unabhängig.

Gruß, Tom

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