Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Selection-Class als LateBinding aus Visual Basic

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:  Selection-Class als LateBinding aus Visual Basic (1637 mal gelesen)
cl10b
Mitglied
Student


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

Beiträge: 93
Registriert: 07.08.2010

erstellt am: 04. Feb. 2011 15: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

Hallo Spezies^^

Ich kriege es beim besten Willen nicht hin im Visual Studio per LateBinding auf die Selection Klasse von CATIA zuzugreifen.
Derzeit behelfe ich mir mit Early Binding - das möchte ich aber eigentlich vermeiden...

Wie definiere ich denn eine Variable nach folgendem Muster:

Dim Liste As Object
Liste = CATIA.Selection  ???????

ein Set Liste = ... wird von Visual Studio 08 erst gar nicht akzeptiert...

Danke vorab

------------------
lg Christian

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: 04. Feb. 2011 16:55    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 cl10b 10 Unities + Antwort hilfreich

Servus
AFAIKAs far as i know (So viel ich weiss) ist die Selection immer dem Dokument zu geordnet.
Versuch es mal mit:
Liste = CATIA.ActiveDocument.Selection

Gruß
Bernd

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

[Diese Nachricht wurde von bgrittmann am 04. Feb. 2011 editiert.]

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

INLU
Mitglied
Konstrukteur Automotive


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

Beiträge: 71
Registriert: 01.03.2008

erstellt am: 05. Feb. 2011 13: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 cl10b 10 Unities + Antwort hilfreich

Hallo Christian,

ich habe das mit der selektion im Late Binding so gemacht:

Code:
       Dim CATIA as Object, Dokument, Selektion
CATIA = System.Runtime.InteropServices.Marshal.GetActiveObject("CATIA.Application")
        Dokument = CATIA.ActiveDocument
        Selektion = Dokument.Selection


Das funktioniert bei mir so auch Einwand frei

mfg

   Lars

[Diese Nachricht wurde von INLU am 05. Feb. 2011 editiert.]

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

cl10b
Mitglied
Student


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

Beiträge: 93
Registriert: 07.08.2010

Catia v5 R21
OS: Win7pro SP1 64Bit
CPU:i5-2500
Ram:16Gb
Grafik: AMD Radeon HD 6700

erstellt am: 06. Feb. 2011 21:01    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

Vielen Dank für eure Antworten.

Ich habe beide Varianten ausprobiert - jedoch ohne Erfolg.

Jedes mal eine "ComException was unhandled - Mitglied nicht gefunden"

sobald ich versuche irgend etwas zu meiner Selection zu "adden":

z.B.

Liste.Add(CATIA.Documents.Item("Test.CATPart").Part)

------------------
lg Christian

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: 06. Feb. 2011 21:15    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 cl10b 10 Unities + Antwort hilfreich

Servus
Zu welcher Selektion willst du das Part hinzufügen? Das zu selektierende Element muss ja im Dokument der Selektion vorhanden sein.
Was hast du vor?

Gruß
Bernd

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

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

cl10b
Mitglied
Student


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

Beiträge: 93
Registriert: 07.08.2010

erstellt am: 06. Feb. 2011 22:03    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 Bernd,

da ich mich mit den genauen Bezeichnungen im VB.net-Jargon noch nicht gut auskenne muss ich kurz ausholen 

Ich habe ein Assembly aus einigen Parts, die teilweise aus Übersichtsgründen in Produkten sortiert sind.
Aus einer externen VB.net Application möchte ich gezielt einzelne Parts ein- /ausblenden.
CATIA läuft zu diesem Zeitpunkt bereits und das entsprechende Dokument ist geladen. Die Early-Binding-Variante funktioniert tadellos!


Die Liste wird vor Gebrauch geleert, anschließend gefüllt und alle Mitglieder der Liste auf sichtbar gesetzt.

Hier mal ein beispielhafter Ausschnitt aus der entsprechenden Prozedur zum Einblenden:

Imports INTITF
...

Sub Einblenden()
CATIA = GetObject(, "CATIA.Application")
Dim Liste As Selection 'hier die Early Binding Variante
Liste = CATIA.ActiveDocument.Selection

Liste.Clear()

'Selektieren der Parts
Liste.Add(CATIA.Documents.Item("Part1.CATPart").Part)
Liste.Add(CATIA.Documents.Item("Part2.CATPart").Part)
...

'Einblenden der selektierten Parts
Liste.Visproperties.SetShow(0)
Liste.Clear ()
End Sub

------------------
lg Christian

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: 07. Feb. 2011 08: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 cl10b 10 Unities + Antwort hilfreich

Servus
Ich vermute dass es so nicht geht wie du vorhast. Entweder muss du in deinem Assembly über die Products-Collections deine Teile Selektieren. Oder ggf geht auch mit der Suche diese Parts zu selektieren (einfach mal mit der Suche probieren und ggf dies mit der Makroaufzeichnung aufzeichnen)

Gruß
Bernd

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

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

cl10b
Mitglied
Student


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

Beiträge: 93
Registriert: 07.08.2010

erstellt am: 07. Feb. 2011 13:44    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 Bernd,

deine Aussage bezieht sich dabei auf Late-Binding?

Mit Early-Binding funktioniert es nämlich tadellos...

------------------
lg Christian

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

INLU
Mitglied
Konstrukteur Automotive


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

Beiträge: 71
Registriert: 01.03.2008

erstellt am: 10. Feb. 2011 10: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 cl10b 10 Unities + Antwort hilfreich

Hallo cl10b,
mal kurz noch eine Frage:

Wofür hast du den Eintrag >Imports INTITF< noch im Code ?

Bei mir Funktioniert das komplett ohne.

mfg
  Lars

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

cl10b
Mitglied
Student


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

Beiträge: 93
Registriert: 07.08.2010

Catia v5 R21
OS: Win7pro SP1 64Bit
CPU:i5-2500
Ram:16Gb
Grafik: AMD Radeon HD 6700

erstellt am: 12. Feb. 2011 12: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

Ist das nicht eine Voraussetzung zur Benutzung des Early-Bindings?!

Normalerweise (ich mache eigentlich alles mit Late-Binding) habe ich diesen Eintrag nicht drin - ohne kann ich jedoch nicht auf die Section Klasse zugreifen - und einen funktionierenden Weg "eine Art von Selection" per Late-Binding umzusetzen habe ich trotz der Vorschläge hier noch nicht gefunden.
Allerdings sind mir ähnliche Probleme auch schon in anderem Zusammenhang untergekommen. Die Standardsyntax zum Aufruf einer Isoperspektive funktioniert bei mir erstaunlicher Weise ebenfalls nicht.
Evtl. gibt es ein paar Besonderheiten innerhalb Visual Studio.
Ich bin aber auch nur Programmier-Laie, auch wenn ich Dank der tatkräftigen Unterstützung hier im Forum wirkliche Fortschritte bei der Umsetzung meines Programmes erzielen konnte...

[Diese Nachricht wurde von cl10b am 12. Feb. 2011 editiert.]

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

schnix
Mitglied
Student


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

Beiträge: 25
Registriert: 18.09.2007

erstellt am: 23. Feb. 2011 09: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 cl10b 10 Unities + Antwort hilfreich

Hey
Ich stehe immernoch vor dem Problem, in Visual Studio eine Aufforderung zur Selektion zu programmieren. Bei mir ist es der Fall, dass beim Klicken auf einen Button, der Benutzer aufgefordert werden soll einen Namen einzugeben. Danach sollen zwei Geometrische Sets selektiert und kopiert werden und das ganze im Part Design. Finde einfach keinen Ansatz, die Selektion durchzuführen.
Es wäre sehr nett wenn der Threadersteller den Code zum Early Binding noch einmal kompl. posten könnte :-)
Mit freundlichen Grüßen
schnix

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

cl10b
Mitglied
Student


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

Beiträge: 93
Registriert: 07.08.2010

Catia v5 R21
OS: Win7pro SP1 64Bit
CPU:i5-2500
Ram:16Gb
Grafik: AMD Radeon HD 6700

erstellt am: 23. Feb. 2011 09:44    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 Schnix,

Early Binding für Selections löse ich in VB2008 wie folgt:

1) Projekt/Verweis hinzufügen/COM/CATIA V5 InfInterfaces Object Library

2) Im entsprechenden Form "ganz oben" Imports INFITF einfügen

3) In der entsprechenden SUB:

   3.1) CATIA = GetObject(, "CATIA.Application")
   
   3.2)DIM Liste As Selection (durch das Early Binding kennt er nun diese Klasse)

  3.3)Liste = CATIA.ActiveDocument.Selection  (EDIT:hatte ich vergessen und jetzt noch nachgetragen)

jetzt beliebig die Liste bearbeiten, z.B.:

Liste leeren: Liste.CLear()

Part hinzufügen: Liste.Add(CATIA.Documents.Item("Test.CATPart").Part)

alle Parts der Liste einblenden: Liste.Visproperties.SetShow(0)

alle Parts der Liste ausblenden: Liste.Visproperties.SetShow(1)

Es bleibt beim Early Binding das Problem, dass man sich an die exakte Version der benutzten Library bindet. Sollte dein Arbeitgeber also auf ein anderes Release wechseln wird dieses Verfahren versagen. Wie bereits weiter oben geschrieben, habe ich trotz der Tipps hier im Thread es bisher nicht mit Late Binding hinbekommen. Irgendwas scheint Visual Basic hier in die Quere zu kommen. Meine Erfahrung damit ist aber auch noch zu begrenzt um hier wirklich der Sache auf den Grund zu gehen. Ich hoffe nach wie vor auf einen funktionierenden Ansatz der erfahrenden User hier im Forum  

[Diese Nachricht wurde von cl10b am 23. Feb. 2011 editiert.]

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

schnix
Mitglied
Student


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

Beiträge: 25
Registriert: 18.09.2007

erstellt am: 23. Feb. 2011 09: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 cl10b 10 Unities + Antwort hilfreich

Ooooh und ich bin am verzweifeln hier. Hatte lediglich den Verweis zu der InfInterface Library vergessen. Diese Variante reicht erst einmal aus für mein Vorhaben! Ein großes Dankeschön an dich

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

Tstone
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 163
Registriert: 04.06.2003

Dell Precision 470
Intel Xeon CPU 3,00GHz
2GB Ram
Microsoft Windows XP
Catia V5 R18 SP6
VB2005

erstellt am: 23. Feb. 2011 10: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 cl10b 10 Unities + Antwort hilfreich

Hallo,
Zitat:
Es bleibt beim Early Binding das Problem, dass man sich an die exakte Version der benutzten Library bindet. Sollte dein Arbeitgeber also auf ein anderes Release wechseln wird dieses Verfahren versagen.

Das ist nicht zwangsläufig so. Ich arbeite mit INTEROP-Assemblys die ich mal mit R16 erstellt habe. Inzwischen sind wir auf R19 und die Programme arbeiten immer noch fehlerfrei (ohne Anpassung oder Neuerstellung der Interop-DLL's)

------------------
Grüße TStone
   "Respektiere die Macht der Worte, wähle sie mit Bedacht!"

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

cl10b
Mitglied
Student


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

Beiträge: 93
Registriert: 07.08.2010

erstellt am: 23. Feb. 2011 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

Ja du hast recht. Ich habe den entsprechenden Absatz in Jens Hansens Buch gerade nochmal gelesen (S.307) und es ist exakt wie du es beschreibst.

Entschuldigung für die Verwirrung!

------------------
lg Christian

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