.NET

Reply
Distinguished Contributor
HJohn1
Posts: 167
Registered: ‎09-26-2008
Message 1 of 5 (195 Views)
Accepted Solution

Mirror BlockReference on UCS

195 Views, 4 Replies
08-09-2013 11:15 AM

I having problems mirroring blockreferences when the active coordinate system is not the WCS.  We are mirroring through the base point of the blockreference.  On the WCS I am doing this:

 

Pt = Blk.Position.Add(New Vector3d(0, 50, 0))

lin = New Line3d(Blk.Position, Pt)

Blk.TransformBy(Matrix3d.Mirroring(lin))

 For the WCS it works very well, however when the current coordinate system is a UCS then it does not work.  I have tried this:

 

mtrx = Ed.CurrentUserCoordinateSystem

Dim vt As New Vector3d(0, 50, 0)

'vt.TransformBy(mtrx)

Pt = Blk.Position.Add(vt)

lin = New Line3d(InsPt, Pt)

lin.TransformBy(mtrx)

Blk.TransformBy(Matrix3d.Mirroring(lin))

 I think my problem is the end point of the line, pt.  I tried to transform the vt but that does not work either.  Can someone please help me here.  Thanks in advance.

 

*Expert Elite*
_gile
Posts: 2,069
Registered: ‎04-29-2006
Message 2 of 5 (169 Views)

Re : Mirror BlockReference on UCS

08-10-2013 03:48 AM in reply to: HJohn1

Hi,

 

If I don't misunderstand, you want to mirror a block about a line parallel to the current UCS Y axis which containd the block position.

 

Vector3d vt = Vector3d.YAxis.TransformBy(ed.CurrentUserCoordinateSystem)
Blk.TransformBy(Matrix3d.Mirroring(new Line3d(Blk.Position, Blk.Position + vt)))

 

Gilles Chanteau
Distinguished Contributor
HJohn1
Posts: 167
Registered: ‎09-26-2008
Message 3 of 5 (160 Views)

Re : Mirror BlockReference on UCS

08-10-2013 05:54 AM in reply to: _gile

Thank you very much _gile this is exactly what I was trying to do.  I was going to use the Matrix3d.Mirroring(Plane) method.  How do I get the Yaxis Plane of the current coordinate system?

*Expert Elite*
_gile
Posts: 2,069
Registered: ‎04-29-2006
Message 4 of 5 (151 Views)

Re : Re : Mirror BlockReference on UCS

08-10-2013 08:04 AM in reply to: HJohn1
Plane plane = new Plane(br.Position, Vector3d.XAxis.TransformBy(ed.CurrentUserCoordinateSystem));
Blk.TransformBy(Matrix3d.Mirroring(plane));

 

Gilles Chanteau
Distinguished Contributor
HJohn1
Posts: 167
Registered: ‎09-26-2008
Message 5 of 5 (108 Views)

Re : Re : Mirror BlockReference on UCS

08-12-2013 06:25 AM in reply to: _gile

Thank you very much _gile.

You are not logged in.

Log into access your profile, ask and answer questions, share ideas and more. Haven't signed up yet? Register

Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.

Need installation help?

Start with some of our most frequented solutions to get help installing your software.

Ask the Community