Here is how to achieve the same functionality than command UCS+V using .Net API:
//////////////////////////////////////////////////////////////////
// Use: Sync UCS with Current view like command UCS V
// Author: Philippe Leefsma, September 2011
//////////////////////////////////////////////////////////////////
[CommandMethod("UcsV")]
public static void UcsV()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
Autodesk.AutoCAD.GraphicsSystem.Manager mng =
doc.GraphicsManager;
short cvport = (short)Application.GetSystemVariable("CVPORT");
Autodesk.AutoCAD.GraphicsSystem.View view =
mng.GetGsView(cvport, true);
Vector3d direction = (view.Target – view.Position);
direction = direction.MultiplyBy(1 / direction.Length);
Vector3d upVector = view.UpVector;
upVector = upVector.MultiplyBy(1 / upVector.Length);
Vector3d xAxis = direction.CrossProduct(upVector);
Matrix3d ucs = Matrix3d.AlignCoordinateSystem(
new Point3d(0, 0, 0),
Vector3d.XAxis, Vector3d.YAxis, Vector3d.ZAxis,
new Point3d(0, 0, 0), xAxis, upVector, direction);
ed.CurrentUserCoordinateSystem = ucs;
}
<
p style=”line-height: normal;margin: 0in 0in 0pt” class=”MsoNormal”>

Leave a Reply