Getting the coordinate of the lastly appended(added) point object

Getting the coordinate of the lastly appended(added) point object

Anonymous
Not applicable
1,032 Views
3 Replies
Message 1 of 4

Getting the coordinate of the lastly appended(added) point object

Anonymous
Not applicable

Hi,

 

I am trying to get the coordinate of the lastly appended(added) point object.

It seems like I need to use "ObjectAppended" event.

However, when the event is triggred, it looks like the sender object is "Database" (not Point object).

 

How could I retrieve the point object therefore the coordinates of the point using "Database" (sender object)?

 

(explaination with C# code would be much more thanksful)

 

Jake.

0 Likes
1,033 Views
3 Replies
Replies (3)
Message 2 of 4

Anonymous
Not applicable

I encountered with another problem.

If I use "ObjectAppended" event, I cannot get the coordinates value as a return value.

I need the coordinate value in order to manipulate some other variables.

How can I approach this problem?

0 Likes
Message 3 of 4

Hallex
Advisor
Advisor

Here is a sample code, change to your suit

        [CommandMethod("huh")]
        public void AddPointEvents()
        {
            // Get the current document and database, and start a transaction
            Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            DBPoint dpoint = null;
            db.ObjectAppended += new ObjectEventHandler(db_ObjectAppended);
            Editor ed=doc.Editor;
          
                try
                {
                      using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                    // Open the current space for write
                    BlockTableRecord btr;
                    btr = tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
                    Point3d pt;
                    PromptPointResult pres;
                    pres= ed.GetPoint("\nPick a point: ");
                    if (pres.Status != PromptStatus.OK) return;
                   
                    // Create a point
                      //  pres = ed.GetPoint("\nPick a point: ");
                     pt = pres.Value;
                     dpoint = new DBPoint();
                     dpoint.Position = pt;//<-- position changed separatelly to call db.ObjectAppended event
                     
                    // Add the new point to the block table record and the transaction
                    btr.AppendEntity(dpoint);
                    tr.AddNewlyCreatedDBObject(dpoint, true);
                    
                    // Save the new object to the database
                    tr.Commit();
                    db.ObjectAppended -= new ObjectEventHandler(db_ObjectAppended);
                }
                }
                catch (System.Exception ex)
                {
                    ed.WriteMessage(ex.Message+"\n" + ex.StackTrace);
                }
                finally
                {
                    
                }
                                  
            }
    
        public  void db_ObjectAppended(object sender, ObjectEventArgs e)
        {
            // Get the current document and database, and start a StartOpenCloseTransaction
            Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            using (Transaction tr = db.TransactionManager.StartOpenCloseTransaction())
            {
                try
                {
                    DBObject dbo = e.DBObject;
                    DBPoint dpoint = dbo as DBPoint;
                    Point3d ins = dpoint.Position;

                    Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage
                        ("\nCoordinates:\tX = {0}; Y = {1}; Z = {2}", ins.X, ins.Y, ins.Z);
                }
                catch (System.Exception ex)
                {
                    Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage
                        (ex.Message + "\n" + ex.StackTrace);
                }
                tr.Commit();
            }
        }

 

~'J'~

_____________________________________
C6309D9E0751D165D0934D0621DFF27919
0 Likes
Message 4 of 4

Alfred.NESWADBA
Consultant
Consultant

Hi,

 

it may not work for your task, it's not really what you asked for, but it may also be what you may search for and so just to be mentioned:

Sysvar LASTPOINT (>>>details<<<)

 

- alfred -

------------------------------------------------------------------------------------
Alfred NESWADBA
ISH-Solutions GmbH / Ingenieur Studio HOLLAUS
www.ish-solutions.at ... blog.ish-solutions.at ... LinkedIn ... CDay 2026
------------------------------------------------------------------------------------

(not an Autodesk consultant)
0 Likes