Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Selektion eines Wire durch CreateReferenceFromBRepName

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:  Selektion eines Wire durch CreateReferenceFromBRepName (1154 mal gelesen)
MilaMauz852
Mitglied
Student: Maschinenbau

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

Beiträge: 3
Registriert: 18.08.2015

CATIA V5 R21 SP6<P>Windows 7 Enterprise SP1 64bit
Intel(R) Xeon(R) CPU 2,27GHz
RAM 16,0GB

erstellt am: 18. Aug. 2015 15:18    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 Leute,

nachdem ich diese Foren seit 3 Wochen lieben lerne, komme ich jetzt zu dem Punkt selber eine 'klitzekleine' Frage zu stellen.
Mit CATIA arbeite ich schon über 4 Jahre lang, nun beschäftige ich mich seit 3 Wochen mit dem Thema Makro Programmierung. Und habe mich jetzt damit als Laie geoutet 

Nun zu meinem Problem:
ich habe diverse Kurvenzüge, die alle rechteck-ähnliche Formen bilden, nur sind diese 'Rechtecke' nicht eben sonder sphärisch gekrümmt. Nicht jedes 'Rechteck' besteht aus 4 Kurven, sondern kann auch aus 1, 2 oder 3 Kurven bestehen. Das kriegt man ja mit einer kleinen Schleife hin. Allerdings muss ich PRO Rechteck alle Kurvenzüge auf eine sphärische Surface projizieren und diese Projektion dann mit 'extract' bearbeiten. Somit erreiche ich, egal wie viele Kurven ein Rechteck bilden, dass ich pro Seite einen extract bekomme; also wenn das 'Rechteck' aus einer Kurve besteht, projiziere ich diese und wende 'extract' 4 mal an. Besteht mein 'Rechteck' aus 3 Kurven à jeweil 2 Seiten muss ich jede Kurve 2 mal extracten.
So, ich hoffe das war einigermaßen verständlich.

Mein Problem liegt bei dem 'extract' Befehl, den ich auf die Projektion anwenden will. Um die jeweiligen Seiten/Wire aus den Projektionen zu lösen, brauche ich den CreateReferenceFromBRepName-Befehlt, da ich ja die verschiedenen Seiten/Wire der Projektion ansprechen muss. Diese werden ja aber nicht im Strukturbaum angezeigt, da eine Projektion einer Kurve eben nur eine Projektion ist und ich mit extract diese Kurve aufsplitten möchte.

Meine Struktur sieht so aus:

part1
geometrisches Set
  > geometrisches Set 2
      Kurve 1 'oHybridShape'
      Kurve 2
      Kurve 3
      > geometrisches Set 3
        Projektion 'hybridShapeProjekt1'
geometrisches Set4
> Fläche 'oFlaeche'

Wie gesagt: das was ich 'extracten' will ist die Seite/Wire einer Projektion 'HybridShapeProjektion1' einer Kurve 'oHybridShape' auf die Fläche 'oFlaeche'

Der betreffende Ausschnitt meines bisherigen Skripts sieht so aus:

Dim refToElement3 As Reference
MsgBox hybridShapeProject1(0).Name & " " & oHybridShape(0).Name & " " & oFlaeche.Name

Set refToElement3 = part1.CreateReferenceFromBRepName("WireREdge Wire Brp " & hybridShapeProject1(0).Name & ";(Brp " & oHybridShape(0).Name & ";1); Brp " & oFlaeche.Name & ";Brp GSMBiDim.1;1))));None Limits1 );Limits2 ));Cf11 ));WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", hybridShapeProject1(0))

Dim hybridShapeExtract1 As HybridShapeExtract
Set hybridShapeExtract1 = hybridShapeFactory1.AddNewExtract(refToElement3)

hybridShapeExtract1.PropagationType = 2

hybridShapeExtract1.ComplementaryExtract = False

hybridShapeExtract1.IsFederated = False

hybridBody3.AppendHybridShape hybridShapeExtract1

part1.InWorkObject = hybridShapeExtract1

part1.Update

Der Fehler taucht schon direkt nach der Nutzung von BRep auf, kann mir jemand sagen, wo mein Fehler liegt? Ich versuche von der Variable oHybridShape(0).Name die 1.Kante anzusprechen und diese zu 'extracten'.

Ich freue mich über Antworten und hoffe mein Problem genügend erläutert zu haben 
LG!

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: 18. Aug. 2015 15: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 Nur für MilaMauz852 10 Unities + Antwort hilfreich

Servus MilaMauz852
Willkommen im Forum.
Ich kann mir deine Geometrie nicht so richtig vorstellen, kannst du bitte ein Bild posten?
Wenn ich dich richtig verstanden sollen Teilsegmente der Kurven einzeln projeziert werden. ggf kannst du statt über den BREP-Zugriff zu gehen über die Selektion gehen (Linie selektieren, in der Suche nach Kanten (Topology) suchen, über die gefunden Kanten direkt die Refernence bilden)

Gruß
Bernd

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

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

MilaMauz852
Mitglied
Student: Maschinenbau

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

Beiträge: 3
Registriert: 18.08.2015

CATIA V5 R21 SP6<P>Windows 7 Enterprise SP1 64bit
Intel(R) Xeon(R) CPU 2,27GHz
RAM 16,0GB

erstellt am: 18. Aug. 2015 15:49    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,

danke für deine schnelle Antwort.
Du verstehst mich schon richtig, nur dass ich alle Teilsegmente meiner Kurve einzeln projizieren will. Aber das tut ja nix zur Sache.
Wie kann ich an meiner selektierten Kurve denn nach Kanten suchen? einfach Topology.Count?

Gruß,
Mila

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: 18. Aug. 2015 16:11    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 MilaMauz852 10 Unities + Antwort hilfreich

Servus
Folgendes (sehr schlampig gecodetes) Makro erzeugt pro Teilsegment einer (zuvor selektierten) Kurve einen Extract:
Code:
Language="VBSCRIPT"

Sub CATMain()

Dim partDocument1 As Document
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridShapeFactory1 As Factory
Set hybridShapeFactory1 = part1.HybridShapeFactory

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item(1)

Dim selection1 As Selection
Set selection1 = partDocument1.Selection

selection1.Search "Topology.CGMEdge,sel"

for i = 1 to selection1.count

Dim reference1 As Reference
Set reference1 = selection1.item(i).reference

Dim hybridShapeExtract1 As HybridShapeExtract
Set hybridShapeExtract1 = hybridShapeFactory1.AddNewExtract(reference1)

hybridShapeExtract1.PropagationType = 3
hybridShapeExtract1.ComplementaryExtract = False
hybridShapeExtract1.IsFederated = False
hybridBody1.AppendHybridShape hybridShapeExtract1

next

part1.Update

End Sub


Gruß
Bernd

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

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

MilaMauz852
Mitglied
Student: Maschinenbau

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

Beiträge: 3
Registriert: 18.08.2015

CATIA V5 R21 SP6<P>Windows 7 Enterprise SP1 64bit
Intel(R) Xeon(R) CPU 2,27GHz
RAM 16,0GB

erstellt am: 19. Aug. 2015 08:40    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

Super! Hab's angepasst und es funktioniert wunderbar, Vielen Dank!

Grüße,
Mila

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