.NET

.NET

Reply
Valued Contributor
70 Posts
1 Kudo
Registered: ‎02-03-2012
Post 1 of 7
Accepted Solution

Get coordinates for dimension's arrorheads.

386 Views, 6 Replies
07-15-2012 02:33 AM

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:

http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/Get-coordinates-for-dimension-s-arror...

 

Maybe someone will know how can do the same in C#.

 

Thanks.

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());
}
}
}

 

Active Contributor
38 Posts
5 Kudos
Registered: ‎02-25-2011
Post 2 of 7

Re: Get coordinates for dimension's arrorheads.

07-25-2012 01:01 PM in reply to: GrzesiekGP

I am also interested to find out this in one of .Net languages??

ADN Support Specialist
352 Posts
27 Kudos
Registered: ‎07-24-2007
Post 3 of 7

Re: Get coordinates for dimension's arrorheads.

07-30-2012 04:04 PM in reply to: leaveAlone

Can you post the DWG file so I can see the data please?





Fenton Webb

Developer Technical Services

Autodesk Developer Network


Valued Contributor
70 Posts
1 Kudo
Registered: ‎02-03-2012
Post 4 of 7

Re: Get coordinates for dimension's arrorheads.

11-08-2012 03:25 AM in reply to: fenton.webb

Up^

*Expert Elite*
1,569 Posts
171 Kudos
Registered: ‎10-08-2008
Post 5 of 7

Re: Get coordinates for dimension's arrorheads.

11-08-2012 09:41 AM in reply to: GrzesiekGP

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());
                    }
                }           
        }

 

_____________________________________
C6309D9E0751D165D0934D0621DFF27919
Valued Contributor
70 Posts
1 Kudo
Registered: ‎02-03-2012
Post 6 of 7

Re: Get coordinates for dimension's arrorheads.

11-08-2012 01:14 PM in reply to: Hallex

Thank you very much!

GetStretchPoints is that what I was looking for :smileyhappy:

*Expert Elite*
1,569 Posts
171 Kudos
Registered: ‎10-08-2008
Post 7 of 7

Re: Get coordinates for dimension's arrorheads.

11-08-2012 01:36 PM in reply to: GrzesiekGP

You're very welcome,

Cheers :smileyhappy:

 

_____________________________________
C6309D9E0751D165D0934D0621DFF27919
Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Announcements
Are you interested in helping shape the future of the Autodesk Community? To participate in this brief usability study, please click here. Your time and input is greatly appreciated!