Hello!
I'm writing function which will help user to offset dimension. After enter command, he select dimension and select point near one of dimension's arrowheads. Then I'm calculating new XLinePoint1 or XLinePoint2 and replacing original.
I have everything done. I thought ... The problem is when user firstly create AlignedDimension and after that he create RotatedDimension by using continous function. After that XLinePoint1 and XLinePoint2 are not parallel to the DimLinePoint (look at image).
Now I really don't have idea how to solve this problem.
Maybe someone know how can I get coordinates of points selected in red rectangles?
I know that one is specified as "dimension line defining point" but what about second? How can I get its coordinates? Or maybe there is other way to get this point?
_Tharwat post the list code here:
Maybe someone will know how can do the same in C#.
Thanks.
Solved! Go to Solution.
Solved by Hallex. Go to Solution.
Can you post the DWG file so I can see the data please?
Just a guess, perhaps problem is on how you create dimension in tour code,
you may want also to lookup the points from GripPoins void,
see example:
[CommandMethod("aldim")] public void testAlignedDim() { Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; Editor ed = doc.Editor; AlignedDimension rd = null; using (Transaction trans = db.TransactionManager.StartTransaction()) { try { using (BlockTable bt = trans.GetObject(db.BlockTableId, OpenMode.ForWrite) as BlockTable) { BlockTableRecord btr = trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord; Point3d p1 = new Point3d(0.0, 0.0, 0.0); Point3d p2 = new Point3d(100.0, 100.0, 0.0); Point3d p3 = new Point3d(0.0, 50.0, 0.0); rd = new AlignedDimension( p1, p2, p3, "<>", db.Dimstyle) as AlignedDimension; ObjectId objId = btr.AppendEntity(rd); trans.AddNewlyCreatedDBObject(rd, true); } trans.Commit(); ed.WriteMessage("\nSretch Points:\n"); Point3dCollection pts = new Point3dCollection(); rd.GetStretchPoints(pts); string info = "\n"; foreach (Point3d p in pts) { info = info + string.Format("{0:f3}", p) + "\n"; } ed.WriteMessage(info); } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } } }
Can't find what you're looking for? Ask the community or share your knowledge.