Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Wie komme ich von selektierter Fläche auf das zugehörige Part

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
KISTERS 3DViewStation: Mit Modellbasiertem Design zum Modellbasierten Unternehmen , eine Pressemitteilung
Autor Thema:  Wie komme ich von selektierter Fläche auf das zugehörige Part (1639 mal gelesen)
louis
Mitglied
Geschäftsführer


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

Beiträge: 93
Registriert: 07.05.2001

V5 R19/R2014, WIN7, Visual Basic6.0 SP6

erstellt am: 03. Mrz. 2003 10:30    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,

nach der Selection einer Fläche komme ich mit MyReference.DisplayName auf den Namen:

"Selection_RSur Face Brp Pad.1;0 Brp Sketch.3;3)));None ));Pad.1)"

Frage:
Wie finde ich das zugehörige Part oder Pad ?

Mein Ziel ist es eine Fläche zu selektieren und entsprechend zuzuordnen.

Vielen Dank fuer einen Tip.

Louis

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

scheuche
Mitglied



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

Beiträge: 46
Registriert: 31.10.2002

erstellt am: 07. Mrz. 2003 09:56    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 louis 10 Unities + Antwort hilfreich

Hallo louis,

ich habe das gleiche problem und komm nicht weiter
falls du was findest, dann gib bitte bescheid.
danke
auch
ute

------------------
gruss
scheuche

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

louis
Mitglied
Geschäftsführer


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

Beiträge: 93
Registriert: 07.05.2001

V5 R19/R2014, WIN7, Visual Basic6.0 SP6

erstellt am: 07. Mrz. 2003 12:41    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 Ute,

ich weiss das es in diesem Forum (Be)Nutzer gibt die 100% wissen wie es geht. z.B. habe ich von akanneng schon Programme gesehen die laufen. (Leider antwortet er nicht)
Es ist eigentlich ein Basis-Teil:
Fläche abfragen, Punkt abfragen und dann per Code eine definierte Bohrung setzten.
Mein Freund, der mir bei solchen Sachen hilft ist gerade beruflich unterwegs - ich glaube also nicht, dass ich Dir vor übernächster Woche was sagen kann.
AUSSER einer der PROFI'S hier im Forum entdeckt doch noch seine soziale Ader und hilft uns.
Vielleicht bekomme ich eine Info auf dem Benutzertreffen nächste Woche in Köln.

Viele Grüsse und ein schönes WE

Louis

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 07. Mrz. 2003 16:21    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 louis 10 Unities + Antwort hilfreich

Hallo Louis,

anbei ein Makro zur Erzeugung einer Bohrung durch Auswählen eines Punktes und einer Fläche. Das Ganze läuft aber erst unter R10 sauber.

Ich hoffe Dir damit geholfen zu haben. Ansonsten melde Dich einfach.

Gruss Steffen


Sub Main()           

'bei VBScript
'Sub CATMain()


    'Variablendeklaration
    Dim CATIA As Application        'CATIA-Object
    Dim ODoc As PartDocument        'Partdokument-Object
    Dim OFactory As ShapeFactory    'ShapeFactory-Object
    Dim OSelection                  'Selections-Object
    Dim SelPoint(0)                'Filter für Punktauswahl
    Dim SelFace(0)                  'Filter für Flächenauswahl
    Dim SelStatus As String        'Rückkehrwert nach Auswahl
    Dim RefPoint As Reference      'Referenz zu ausgewähltem Punkt
    Dim RefFace As Reference        'Referenz zur ausgewählten Fläche
    Dim OHole As Hole              'Bohrungsobjekt
   
    'Wertzuweisung
    Set CATIA = GetObject(, "CATIA.Application")                'Weglassen bei VBScript
    Set ODoc = CATIA.ActiveDocument
    Set OFactory = ODoc.Part.ShapeFactory
    Set OSelection = ODoc.Selection
   
    'Filterdefinition
    SelPoint(0) = "Point"
    SelFace(0) = "PlanarFace"
   
    'Punktauswahl
    SelStatus = OSelection.SelectElement(SelPoint, "Einfügepunkt für Bohrung auswählen", False)
    If (SelStatus = "Cancel") Then Exit Sub
    Set RefPoint = OSelection.Item(1).Reference
   
    'Flächenauswahl
    SelStatus = OSelection.SelectElement(SelFace, "Referenzfläche für Bohrung auswählen", False)
    If (SelStatus = "Cancel") Then Exit Sub
    Set RefFace = OSelection.Item(1).Value
   
    'Bohrung erzeugen 10mm tief
    Set OHole = OFactory.AddNewHoleFromRefPoint(RefPoint, RefFace, 10)
   
    ODoc.Part.Update
End Sub

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

louis
Mitglied
Geschäftsführer


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

Beiträge: 93
Registriert: 07.05.2001

V5 R19/R2014, WIN7, Visual Basic6.0 SP6

erstellt am: 07. Mrz. 2003 18:00    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

Hurra das Forum lebt !

Hallo Steffen,

vielen Dank fuer Deine Antwort.

Im Prinzip habe ich es genauso aufgebaut (nur mit "Face" als Abfragefilter).
Ich habe aber ein Problem. Ich befinde mich in einem Assembly und ich weiss nicht welches Part zu der selektierten Fläche gehört. Somit weiss ich nicht, welchem Part ich die ShapeFactory zur Erstellung der Bohrung zuweisen soll.
Ich glaube Ute hat das gleiche Problem.

Freue mich auf Deine Antwort

Louis

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 11. Mrz. 2003 08:29    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 louis 10 Unities + Antwort hilfreich

Hallo Louis,

leider habe ich momentan auch keine Möglichkeit gefunden, von einem selektierten Boundary-Object (PlanarFace) das Parent herzuleiten.

Folgende Möglichkeit zur Lösung:

Sub Main()

    'Variablendeklaration
    Dim CATIA As Application        'CATIA-Object
    Dim ODoc As ProductDocument        'Partdokument-Object
    Dim OFactory 'As ShapeFactory    'ShapeFactory-Object
    Dim OSelection                  'Selections-Object
    Dim SelPoint(0)                'Filter für Punktauswahl
    Dim SelFace(0)                  'Filter für Flächenauswahl
    Dim SelPart(0)                  'Objekt für Teil
    Dim SelStatus As String        'Rückkehrwert nach Auswahl
    Dim RefPoint As Reference      'Referenz zu ausgewähltem Punkt
    Dim RefFace As Reference        'Referenz zur ausgewählten Fläche
    Dim RefPart 'As Part
    Dim OHole As Hole              'Bohrungsobjekt
   
    'Wertzuweisung
    Set CATIA = GetObject(, "CATIA.Application")
    Set ODoc = CATIA.ActiveDocument
    Set OSelection = ODoc.Selection

    'Filterdefinition
    SelPoint(0) = "Point"
    SelFace(0) = "PlanarFace"
    SelPart(0) = "Part"
   
    'Punktauswahl
    SelStatus = OSelection.SelectElement(SelPoint, "Einfügepunkt für Bohrung auswählen", False)
    If (SelStatus = "Cancel") Then Exit Sub
    Set RefPoint = OSelection.Item(1).Reference
   
    'Flächenauswahl
    SelStatus = OSelection.SelectElement(SelFace, "Referenzfläche für Bohrung auswählen", False)
    If (SelStatus = "Cancel") Then Exit Sub
    Set RefFace = OSelection.Item(1).Value

    'Teil auswählen, das Teil muß natürlich zur Fläche gehören
    SelStatus = OSelection.SelectElement(SelPart, "Teil für Bohrung auswählen", False)
    If (SelStatus = "Cancel") Then Exit Sub
    Set RefPart = OSelection.Item(1).Value
   
    Set OFactory = RefPart.ShapeFactory

   
    'Bohrung erzeugen 10mm tief
    Set OHole = OFactory.AddNewHoleFromRefPoint(RefPoint, RefFace, 10#)
   
    RefPart.Update
End Sub


Das bedeutet zwar ein Klick mehr aber es funktioniert.
Vielleicht entdecke ich noch eine andere Lösung.

Gruss Steffen

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

louis
Mitglied
Geschäftsführer


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

Beiträge: 93
Registriert: 07.05.2001

V5 R19/R2014, WIN7, Visual Basic6.0 SP6

erstellt am: 11. Mrz. 2003 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

Hallo Steffen,

genau so habe ich es schon gelöst, nur dass ich SelPart(0) auf "Pad" setze.
Dann komme ich mit dem .parent.parent Ergebnis auf den richtigen Körper und mit .parent.parent.parent auf das zugehörige Part.
Der Hintergrund ist, dass wenn Du in Deinem Part mehrerere Körper hast, der richtige Körper .InWorkObject gesetzt sein muss.
Überhaupt ist das ein mit dem .InWorkObject wichtig. Wenn nämlich ein offener Körper in diesem Part gerade .InWorkObject ist, kannst das Programm keine Bohrung erzeugen.

Vielen Dank und herzliche Grüsse

Louis

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