.NET

## .NET

Distinguished Contributor
Posts: 170
Registered: ‎09-26-2008
Message 1 of 5 (223 Views)

# Mirror BlockReference on UCS

223 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)

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.

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)))```

*Expert Elite*
Posts: 2,084
Registered: ‎04-29-2006
Message 2 of 5 (197 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
Posts: 170
Registered: ‎09-26-2008
Message 3 of 5 (188 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*
Posts: 2,084
Registered: ‎04-29-2006
Message 4 of 5 (179 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
Posts: 170
Registered: ‎09-26-2008
Message 5 of 5 (136 Views)

# Re : Re : Mirror BlockReference on UCS

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

Thank you very much _gile.

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 or visit the Installation and Licensing Forum to get help installing your software.