I´m struggling to find a way to orient a wire prior to iBrepBuilderEx_DG.Evolve(wireProfile, wireSpine, ...).
I am aware of using IFrame_DG or IGeometricObject and the differences, but for both I need to create an entity to get through GetLocation() or GetGeometry() the interface.
When I do this the wire makes the transformation, but the original wire does not. How can I put back the modified geometry to the wire prior to Evolve?
This is what I am doing:
Code: Select all
Dim ProfileWire As IBRepWire_DG = CreateWireFromPoints(ProfilePoints, closed:=True)
Dim tWire As IBRepWire_DG = ProfileWire
'
Dim tEntity As IEntity_DG = mModel.AddBRepShape(tWire)
Dim iScene As IScene_DG = mView.GetScene()
iScene.ShowLocalFrame(tEntity, True)
'
Dim iGeo As IGeometricObject_DG = tEntity.GetGeometry()
Dim iFrame As IFrame_DG = tEntity.GetLocation()
'
iFrame.TranslateGlobal1(0, -30, -25)
iFrame.RotateGlobal(-90 * DEG, createV(0, 0, 1))
iFrame.TranslateGlobal1(origin.x(0), origin.x(1), origin.x(2))
'
ProfileWire = tEntity.GetGeometry() or ProfileWire=iGeo same result
later iShapeOp = iBuilderEx.Evolve(iWireProfile, iWireSpine, JoinType_DG.eJoinTypeArc, True, True)
The Evolve operation requires a wire. If I do this with EvolveFace similar result!
The Evolve operation is done on the wire with initial (creation) location and orientation.
What can I do to avoid this to happen?
Thanks in advance,