Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  GetGeometricalFeatureType von Selection Item

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:  GetGeometricalFeatureType von Selection Item (1927 mal gelesen)
geekv5
Mitglied
Konstrukteur


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

Beiträge: 214
Registriert: 13.07.2011

Notebook<P>MSI GX660R
Intel Core i5 460M
8GB DDR3
1GB Mobility HD5870
80GB Intel X25-M Postville
250GB HDD<P>Desktop<P>AMD Phenom II X4 965
1GB HD4890@ FirePro V8700
8GB DDR3-1600
2,5TB HDD<P>Belinea 2485 S1W 24" MVA

erstellt am: 16. Sep. 2012 10: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

Hallo zusammen,

könnt ihr mir kurz auf die Sprünge helfen, versuche verzweifelt den Geometrietyp eines selektierten Elements auszugeben doch GetGeometricalFeatureType schlägt immer fehl..

Hier mal ein Beispiel:

Code:
MsgBox CATIA.ActiveDocument.Part.HybridShapeFactory.GetGeometricalFeatureType(CATIA.ActiveDocument.Selection.Item2(1).Value)

Und nochmal in lang:

Code:
Dim partdocument1 As PartDocument
Dim part1 As Part
Dim selection1 As Selection
Dim ref1 As Reference
Dim hybridshapefactory1 As HybridShapeFactory
Dim intgeomtype As Integer
Dim strgeomtype As String

Set partdocument1 = CATIA.ActiveDocument
Set selection1 = partdocument1.Selection
Set ref1 = selection1.Item2(1).Reference
Set part1 = partdocument1.Part
Set hybridshapefactory1 = part1.HybridShapeFactory

intgeomtype = hybridshapefactory1.GetGeometricalFeatureType(ref1)

Select Case intgeomtype

    Case 0
   
        strgeomtype = "Unknown"
   
    Case 1
   
        strgeomtype = "Point"
   
    Case 2
   
        strgeomtype = "Curve"
   
    Case 3
   
        strgeomtype = "Line"
   
    Case 4
       
        strgeomtype = "Circle"
   
    Case 5
   
        strgeomtype = "Surface"
   
    Case 6
   
        strgeomtype = "Plane"
       
    Case 7
   
        strgeomtype = "Solid or Volume"

End Select

MsgBox strgeomtype


Habe es auch mit Selection.Item (ohne "2") versucht oder die Referenz über ein Objekt zu erzeugen, leider ohne Erfolg.. Hoffe ihr könnt mir da weiter helfen..

Gruß

------------------
Seid nicht dumm, lest drin rum!

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: 16. Sep. 2012 10: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 geekv5 10 Unities + Antwort hilfreich

Servus
Wenn du das Element aus der Shape-Collection übergibst geht es:
Code:
intgeomtype = hybridshapefactory1.GetGeometricalFeatureType(part1.hybridBodies.Item(1).Hybridshapes.Item(1))

Alternativ könntest du auch die Funktion TypeName verwenden zB:
Code:
MsgBox = TypeName(selection1.Item2(1).Value)
Gruß
Bernd

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

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

geekv5
Mitglied
Konstrukteur


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

Beiträge: 214
Registriert: 13.07.2011

Notebook<P>MSI GX660R
Intel Core i5 460M
8GB DDR3
1GB Mobility HD5870
80GB Intel X25-M Postville
250GB HDD<P>Desktop<P>AMD Phenom II X4 965
1GB HD4890@ FirePro V8700
8GB DDR3-1600
2,5TB HDD<P>Belinea 2485 S1W 24" MVA

erstellt am: 16. Sep. 2012 11: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

Hallo Bernd,

leider hilft mir das nicht wirklich weiter, ich möchte ja explizit ein Element einer Selektion prüfen, oder hast du eine Idee wie ich vom Selection Item auf das Shape-Collection Item komme? TypeName liefert mir zu viele Varianten (will nur zwischen Punkt, Kurve, Fläche usw. unterscheiden)..

MfG

Nachtrag:

Mit dieser Methode funktioniert es, sind zwar fünf Typen mehr zu unterscheiden, aber für meine Zwecke ist das denke ich besser als TypeName..

Code:

Sub CATMain()

Dim partdocument1 As PartDocument
Dim part1 As Part
Dim selection1 As Selection
Dim ref1 As Reference
Dim hybridshapefactory1 As HybridShapeFactory
Dim intGeomType As Integer
Dim strGeomType As String
Dim workbench1 As Object

Set partdocument1 = CATIA.ActiveDocument
Set selection1 = partdocument1.Selection
Set ref1 = selection1.Item2(1).Reference
Set part1 = partdocument1.Part
Set hybridshapefactory1 = part1.HybridShapeFactory
Set workbench1 = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
Set measurable1 = workbench1.GetMeasurable(ref1)

intGeomType = measurable1.GeometryName

Select Case intGeomType

    Case 0
   
      strGeomType = "Unknown"
   
    Case 1
   
      strGeomType = "Other"
   
    Case 2
   
      strGeomType = "Volume"
   
    Case 3
   
      strGeomType = "Surface"
   
    Case 4
   
      strGeomType = "Cylinder"
   
    Case 5
   
      strGeomType = "Sphere"
   
    Case 6
   
      strGeomType = "Cone"
   
    Case 7
   
      strGeomType = "Plane"
   
    Case 8
   
      strGeomType = "Curve"
   
    Case 9
   
      strGeomType = "Circle"
   
    Case 10
   
      strGeomType = "Line"
   
    Case 11
   
      strGeomType = "Point"
   
    Case 12
   
      strGeomType = "Axis System"

End Select

MsgBox strGeomType

End Sub


Falls es dennoch eine andere Lösung gibt bin ich natürlich daran interessiert.. Danke erstmal!

Btw. hier ist das Thema sehr schön beschrieben..

------------------
Seid nicht dumm, lest drin rum!

[Diese Nachricht wurde von geekv5 am 16. Sep. 2012 editiert.]

[Diese Nachricht wurde von geekv5 am 16. Sep. 2012 editiert.]

[Diese Nachricht wurde von geekv5 am 16. Sep. 2012 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: 16. Sep. 2012 11:47    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 geekv5 10 Unities + Antwort hilfreich

Servus
Ich hab es nochmal kurz durchlaufen lassen, nun klappt bei mir auch das Übergeben des selektierten Objekts (was zuvor nicht lief):
Code:
intgeomtype = hybridshapefactory1.GetGeometricalFeatureType(selection1.Item2(1).Value)
Geht das bei dir auch?

Gruß
Bernd

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

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

geekv5
Mitglied
Konstrukteur


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

Beiträge: 214
Registriert: 13.07.2011

Notebook<P>MSI GX660R
Intel Core i5 460M
8GB DDR3
1GB Mobility HD5870
80GB Intel X25-M Postville
250GB HDD<P>Desktop<P>AMD Phenom II X4 965
1GB HD4890@ FirePro V8700
8GB DDR3-1600
2,5TB HDD<P>Belinea 2485 S1W 24" MVA

erstellt am: 16. Sep. 2012 11: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

Komisch, da haut er mir entweder "Automation Error", "Type missmatch" oder komische Zahlenwerte wie "18704" raus, je nachdem was ich anfasse, hier der Code, den ich probiert habe:

Code:

Sub CATMain()

Dim partdocument1 As PartDocument
Dim part1 As Part
Dim selection1 As Selection
Dim hybridshapefactory1 As HybridShapeFactory
Dim intGeomType As Integer

Set partdocument1 = CATIA.ActiveDocument
Set selection1 = partdocument1.Selection
Set part1 = partdocument1.Part
Set hybridshapefactory1 = part1.HybridShapeFactory

intGeomType = hybridshapefactory1.GetGeometricalFeatureType(selection1.Item2(1).Value)

MsgBox intGeomType

End Sub


------------------
Seid nicht dumm, lest drin rum!

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