Autor
|
Thema: Angrenzende Flächen selektieren!!!! (2450 mal gelesen)
|
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 02. Okt. 2008 13:48 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich suche nach einer möglichkeit, das ich angrenzende Flächen über ein Makro selektieren lassen. Folgendes Szenario. Ich habe einen Solidwürfel. Nun selektiere ich eine Seitenfläche, das Makro soll nun die angrenzenden Flaechen, der selektierten Flaeche finden und in ein geometrisches Set isoliert ableiten, also dumm. Es sollen jedoch nur die an der selektierten Flaeche angrenzenden Flaechen mitgenommen werden. Hat hier jemand eine Idee?
Vielen Dank schon im vorraus Gruß Timber ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 02. Okt. 2008 13:53 <-- editieren / zitieren --> Unities abgeben: Nur für Timberwolve
|
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 02. Okt. 2008 14:02 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für die Antwort, aber ist nicht ganz das was ich benötige. Wenn ich die Propagation auf 1 also Punktstetig stelle, dann werden alle angrenzden Flaeche, um den ganzen solid abgeleitet, ich möchte jedoch nur die angrenzenden an der selektierten Flaeche, also beim Beispiel Würfel, darf die gegenüberliegende Seite nicht mit abgeleitet werden. ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 02. Okt. 2008 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für Timberwolve
|
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 02. Okt. 2008 14:43 <-- editieren / zitieren --> Unities abgeben:
Habe schon befürchtet das das nicht so einfach werden würde. Habe aber aktuell schon schwierigkeiten den selektierten BRep Abzuleiten. Weiss net wie ich da weiterkomme. Hatte mit selektierten BReps bis jetzt noch nix am Hut Code:
Public CATIA As INFITF.Application Public oPart As Part Public oHybridbody As HybridBody Public oHSFAC As HybridShapeFactory Dim aINPUT(0) Private Sub Command1_Click()
aINPUT(0) = "AnyObject" Set CATIA = GetObject(, "CATIA.Application") Set oPart = CATIA.ActiveDocument.Part Set oHybridbody = oPart.HybridBodies.Add oHybridbody.Name = "TEST" oPart.InWorkObject = oHybridbody Set oSel = CATIA.ActiveDocument.Selection oSel.Clear Status = oSel.SelectElement2(aINPUT, "BITTE FLAECHE WAEHLEN", True) Dim oElem As Reference Set oElem = oSel.Item(1).Value Dim oNewExtract As HybridShapeExtract Set oHSFAC = oPart.HybridShapeFactory Dim oRef As Reference Set oNewExtract = oHSFAC.AddNewExtract(oElem) oNewExtract.PropagationType = 3 oNewExtract.ComplementaryExtract = False oNewExtract.IsFederated = False oHybridbody.AppendHybridShape hybridShapeExtract1 oPart.InWorkObject = oNewExtract End Sub
Vielleicht kann mir hier erst mal jemand weiter helfen ;-) Gruß Timber ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 02. Okt. 2008 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für Timberwolve
|
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 02. Okt. 2008 15:01 <-- editieren / zitieren --> Unities abgeben:
Hallo, die Reference hab ich schon aus der Selection, aber er will mir den Extract nicht machen. Den Namen brauch ich hier doch nicht, wenn ich nach deiner Methode den Namen auslese, bekomme ich nur "CATIAReference8". Mit dem kann ich doch gar nix machen, oder irr ich mich? Wie gesagt, hatte mit sowas noch nix zu tun. Über Hilfe wäre ich sehr dankbar. Gruß Timber ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 02. Okt. 2008 15:20 <-- editieren / zitieren --> Unities abgeben: Nur für Timberwolve
Lass mal die ganzen Dim-Deklarationen weg. Zumal du hier der Fehler liegen wird: Dim oElem As Reference Set oElem = oSel.Item(1).Value *<--- Liefert direkt das angeklickte Objekt und nicht die Referenz!! Richtig wäre für die Extract-Fläche demnach: Set oElem = oSel.Item(1).Value Set oRef = oPart.CreateRefernceFromObject(oElem) 'Oder ------- Set oRef = oSel.Item(1).Reference '------------- Set oHSFAC = oPart.HybridShapeFactory Set oNewExtract = oHSFAC.AddNewExtract(oRef ) oNewExtract.PropagationType = 3 oNewExtract.ComplementaryExtract = False oNewExtract.IsFederated = False oHybridbody.AppendHybridShape oNewExtract Für den BREP-Namen versuch mal oSel.Item(1).Reference.DisplayName Jens Hansen ------------------ Inoffizielle CATIA-Hilfeseite Private Seite Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 02. Okt. 2008 15:32 <-- editieren / zitieren --> Unities abgeben:
Hallo, also so schlägt es bei mir ebenfalls fehl. Bin langsam am verzweifeln. Wenn ich so ein Makro aufzeichne, dann übersetzt das CATIA mit CreateReferenceFromBrepName. Habe ich aber jetzt auch schon versucht, und den Namen zu zerstückeln ist wohl sehr komplex, da ich nicht weiss was weggekürzt werden muss und was nicht. Ich programmier das ganze momentan auf VB6, kann es daran liegen? Ich werds mal als CATScript laufen lassen. ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 02. Okt. 2008 15:34 <-- editieren / zitieren --> Unities abgeben:
|
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 02. Okt. 2008 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für Timberwolve
|
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 02. Okt. 2008 15:46 <-- editieren / zitieren --> Unities abgeben: Nur für Timberwolve
|
noir333 Mitglied Ingenieur
Beiträge: 148 Registriert: 27.01.2004 Dell Precision 450 Dual Xeon, 2MB RAM, XP SP2, NX3 V5R17SP3
|
erstellt am: 03. Okt. 2008 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für Timberwolve
Hallo Timberwolve, schau mal hier, den Beitrag am Ende von mir: BREPS Wenn Du die angrenzenden Flächen suchst, musst Du wohl alle Flächen des Solids ableiten und den Abstand ausmessen, wenn Abstand null, dann ist es eine angrenzendes Brep. Theoretisch könnte man auch den Abstand mit Measureable direkt von den Breps berechnen (ohne vorher abzuleiten), habe aber schon Fehlmessungen dabei gehabt! War unter R16, vielleicht geht es mittlerweile in R17 oder R18. ------------------ ----------- [Diese Nachricht wurde von noir333 am 03. Okt. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |