mit der BREP deines faces kannst du eine extraction erzeugen, und auf der dann eine direction, von der du die coordinaten auslesen kannst.
ich hab in unterem beispiel eine thick surface in nem body. eins der faces der thick surface ist vor macrostart selectiert.
es wuerde mich freuen, falls jemand das problem mit der BREP erlaeutern koennte. Warum funktioniert my_part.CreateReferenceFromBRepName(my_face.Name, my_thickface) nicht?
Generel: wie komme ich an ein sauberes BRep von selectierten elementen ran?
mfg,
gregor
Sub CATMain()
Dim my_sel As Selection
Set my_sel = CATIA.ActiveDocument.Selection
Dim my_face
Set my_face = my_sel.Item(1).Value
Dim my_part As Part
Set my_part = my_sel.FindObject("CATIAPart")
my_sel.Add my_face
Dim my_body As Body
Set my_body = my_sel.FindObject("CATIABody")
my_sel.Add my_face
Dim my_thickface 'As CATIAThickSurface
Set my_thickface = my_sel.FindObject("CATIAThickSurface")
my_sel.Add my_face
Dim ref1 As Reference
'die folgende BREP hab ich aus nem aufgezeichneten macro kopiert
Set ref1 = my_part.CreateReferenceFromBRepName("RSur:(Face:(Brp:(ThickSurface.3;(Brp:(GSMExtrude.32;2:(Brp:(GSMProject.32;(Brp:(GSMLineCorner.1;(Brp:(GSMPoint.35);Brp:(GSMPoint.34)));Brp:(GSM Plane.3)))))));None:();Cf9:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", my_thickface)
'kannst du mir erklaeren warum die folgende zeile nicht funktioniert
'Set ref1 = my_part.CreateReferenceFromBRepName(my_face.Name, my_thickface)
Dim my_hs_fac As HybridShapeFactory
Set my_hs_fac = my_part.HybridShapeFactory
Dim my_extr As HybridShapeExtract
Set my_extr = my_hs_fac.AddNewExtract(ref1)
my_body.InsertHybridShape my_extr
Set ref1 = my_part.CreateReferenceFromObject(my_extr)
Dim my_dir As HybridShapeDirection
Set my_dir = my_hs_fac.AddNewDirection(ref1)
my_body.InsertHybridShape my_dir
my_x = my_dir.GetXVal
my_y = my_dir.GetYVal
my_z = my_dir.GetZVal
my_sel.Clear
my_sel.Add my_dir
my_sel.Add my_extr
my_sel.Delete
my_sel.Add my_face
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP