Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Objekte selektieren über Form

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:   Objekte selektieren über Form (1237 mal gelesen)
FRANKV5
Mitglied



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

Beiträge: 15
Registriert: 06.07.2005

erstellt am: 16. Jun. 2006 11:12    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 zusammen,

ich möchte während ein Makro läuft eine selektion vornehmen. Das funktioniert wenn ich den Makro ohne VBA-Form starte ja auch ganz gut. Allerdings geht es gar nicht, wenn ich den Makro in eine VBA-Form einbaue. Der Fehler wird immer beim "SelectElement2" angezeigt.

Dim E As String
E = CATIA.ActiveDocument.Selection.SelectElement2(Auswahl, "Linie wählen.", True)


Gruß

Frank 

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

serrano
Mitglied
Student


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

Beiträge: 27
Registriert: 06.12.2005

erstellt am: 16. Jun. 2006 16:34    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 FRANKV5 10 Unities + Antwort hilfreich

Hi,

Ich habe noch nicht mit selektionen gearbeitet. Aber Ich habe eine Idee die Villeicht dir helfen könnte. Ich dachte villeciht solltest du den Befehl in Schritte zerteilen:

Set ActDoc = CATIA.ActiveDocument
Set ActSelec = ActDoc.Selecion
Dim E As String
E = ActSelec.SelectElement2(Auswahl, "Linien wählen.", True)

ich habe es mir so gedacht, weil es so beim abrufen der DateiName einer Instanz funktioniert.

Set MyItem = CATIA.Documents.Item(x)
Dim FileName As String
FileName = MyItem.Name

Momentan habe ich kein CATIA am Rechner un kann dir nicht weiter helfen.

Höffentlich Hilft dir mein Beitrag.

------------------
mfg,

serrano

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

FRANKV5
Mitglied



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

Beiträge: 15
Registriert: 06.07.2005

erstellt am: 16. Jun. 2006 21: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

Hi serrano,

vielen Dank erstmal für die Antwort. Hat aber leider nicht funktioniert, auch nach einen kleinen Umbau des Skripts nicht.

Die Fehlermeldung erscheint immer noch beim SelectElement2. Vielleicht hast Du ja noch eine Idee.

Gruß und schönes Wochenende

Frank

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: 601
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon 3,7GHz 32GB RAM
Windows7 64bit
R26 <= CATIA V5 > =R19

erstellt am: 19. Jun. 2006 06:34    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 FRANKV5 10 Unities + Antwort hilfreich

Hallo,

wenn du einen Blick in die Online Doku riskierst wirst du feststellen, das das so auch gar nicht funktionieren kann.

Du musst zuerst einmal definieren, welcher Object Typ vom User selektiert werden kann. Im Bsp. mal ein Achsensystem, kann aber sonst alles sein. Auch mehrere unterschiedliche (das Array muss dann größer 0 sein). Bsp.:


Language="VBSCRIPT"

Sub CATMain()

Dim InputObjectType(0)
Dim Status, oRoot, oSelection

Set oRoot = Catia.ActiveDocument
Set oSelection = oRoot.Selection

InputObjectType(0) = "AxisSystem"
Status = oSelection.SelectElement2(InputObjectType, "Select", False)
If (Status <> "Normal") Then
  MsgBox "Abbruch.      ", 16, "Error"
Else
  Set oSelectedElement = oSelection.Item(1).Value
  Set oParent = oSelection.FindObject("CATIAProduct")
  oSelection.Clear
  oSelection.EndSelectElement
  MsgBox oSelectedElement.Name & " in " & oParent.Name & " wurde ausgewählt.  ", 64, "Info"
End If

End Sub

Hoffe das hilft dir weiter. Gruss

TomTom

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

[Diese Nachricht wurde von tomtom1972 am 19. Jun. 2006 editiert.]

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

FRANKV5
Mitglied



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

Beiträge: 15
Registriert: 06.07.2005

erstellt am: 22. Jun. 2006 21:38    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,

vielen Dank für die Antwort. Leider konnte ich es erst heute probieren, aber ich muss sagen das sieht sehr gut aus. Du hast das ganze viel einfacher als ich aufgebaut und vor allem funktioniert es auch.
Nur leider muss ich die VB-Form erst schließen bevor ich die Selektion vornehmen kann. (Den Makro starte ich dabei über einen CommandButton.) Hast Du vielleicht eine Idee was ich probieren kann?


Gruß
Frank

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: 601
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon 3,7GHz 32GB RAM
Windows7 64bit
R26 <= CATIA V5 > =R19

erstellt am: 23. Jun. 2006 06:42    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 FRANKV5 10 Unities + Antwort hilfreich

Hallo,

du musst nicht erst die Form schliessen.
Du kannst die Form "Modal" or "NonModal" starten, d.h. einmal blockt sie das Script (und wartet auf die User-Interaktion) und einmal läuft das Script einfach weiter.
Bsp:
FRM_UserSelection.Show vbModeless  '--- Form wartet nicht auf Unload
FRM_UserSelection.Show vbModal  '--- Form wartet auf Unload (OK-Button oder so was)

Die Selektionsaufforderung der .SelectElement2 oder ...3 Methode in der CATIA-Befehlszeile ist eher für die Füße - deshalb bedienen wir uns ja überhaupt bei VisualBasic, oder?

Also. Ich mache das immer so:

-Form im vbModeless laden
-Do Loop Until Schleife in der die Selektion selbst eingebettet wird
-Schleife wird verlassen bei korrekter Selektion
-Form im vbModal umschalten
-User muss OK Button drücken
-Form Unload

Zwei Sachen sind dabei hilfreich:

-Form "always on Top" laden (immer im Bildschirm Vordergrund) mit
Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Ist das bekannt?

Nach dem Laden der Form Catia aktivieren, damit der User wie gewohnt selektieren kann und nicht erst rumklicken muss (mit AppActivate ("CATIA V5"))


Falls es nicht klappt, melde dich.

Gruss TomTom

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

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

FRANKV5
Mitglied



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

Beiträge: 15
Registriert: 06.07.2005

erstellt am: 23. Jun. 2006 13:57    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,

ich bin leider noch nicht so fit in der VB-Programmierung. Ich probiere es mal übers Wochenende aus und melde mich dann Montag wieder.

Gruß und schönes Wochendende

Frank

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

FRANKV5
Mitglied



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

Beiträge: 15
Registriert: 06.07.2005

erstellt am: 23. Jun. 2006 23:58    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,

also Modal bzw. Modeless einzubinden ist mir leider nicht gelungen. Ich habe es dann einfach mal mit frm.hide und frm.show probiert und das hat sogar funktioniert.
Nur eines stört mich noch:
Nach dem ersten selektieren des Buttons (für eine Selektion) erscheint noch mal ein Hinweis was ausgewählt werden darf. Gibt es eine Möglichkeit, das ab dem zweiten Drücken des Buttons dieser Hinweis (MsgBox) nicht mehr erscheint?

Gruß
Frank

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: 601
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon 3,7GHz 32GB RAM
Windows7 64bit
R26 <= CATIA V5 > =R19

erstellt am: 27. Jun. 2006 06: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 FRANKV5 10 Unities + Antwort hilfreich

Hallo,
die Frage habe ich nicht verstanden.

Gruss
TomTom

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

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

jkendl007
Mitglied


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

Beiträge: 2
Registriert: 14.11.2019

erstellt am: 15. Nov. 2019 08: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 FRANKV5 10 Unities + Antwort hilfreich

Hallo tomtom1972,

wie machst Du das mit dem "Form im vbModal umschalten", etwas so?
FRM_UserSelection.Hide
FRM_UserSelection.Show vbModal

Wie genau machst Du die Do Loop Until Schleife?

Super wäre, wenn Du einen Beispielcode posten könntest.

Danke,
Josef

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)2019 CAD.de | Impressum | Datenschutz