рдорд▓реНрдЯреАрдХрд╛рдб .NET рдПрдкреАрдЖрдИ рдкрд░ рдХрд╕реНрдЯрдо рдХреИрдб рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдмрдирд╛рдирд╛

рдкрд╛рд░рдВрдкрд░рд┐рдХ .NET API .dwg рдЕрдиреБрд░реВрдк рд╕реАрдПрдбреА рд╕рд┐рд╕реНрдЯрдо рдХреА рдореБрдЦреНрдп рдХрдорд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред .NET рдкрд░ рдХрд╕реНрдЯрдо рдПрдВрдЯрд┐рдЯреАрдЬ рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ред рдХрд╕реНрдЯрдо рдЖрджрд┐рдо C ++ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред .NET рдореЗрдВ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ C ++ / CLI рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рд░реИрдкрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

MultiCAD .NET рддрдХрдиреАрдХ рдЖрдкрдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рд╕реЗ рдкрд░реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХрд╕реНрдЯрдо рдЖрджрд┐рдо рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╕реА ++ рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рд╡рд╕реНрддреБрдУрдВ рдХреА рдХрдореА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд▓реНрдЯреАрдХрд╛рдб .NET .NET рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рддрдВрддреНрд░ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реАрдПрдбреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреНрд░рдорд╛рдВрдХрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдПрдХ COM рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрджрд┐ рдмрдирд╛рдП рдмрд┐рдирд╛ рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рдЧреБрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред ред

MultiCAD .NET рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо SDK рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ CustomObjects рдирдореВрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдХрд╕реНрдЯрдо рдЖрджрд┐рдо рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдВрджрд░ рдХреЗ рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рдлреНрд░реЗрдо рд╣реИ:

рдирдореВрдирд╛ TextInBox MultiCAD .NET рдЗрдХрд╛рдИ

рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдЖрджрд┐рдо рдпреБрдХреНрдд рдЪрд┐рддреНрд░ рдХрд┐рд╕реА рднреА .dwg рд╕рдВрдЧрдд CAD рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЦреЛрд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрджрд┐рдо рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡ рдХреЗ рдХреЛрдб рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрд╕реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕рднреА рд╕рд╣рд╛рдпрдХ рд╕реАрдПрдбреА рд╕рд┐рд╕реНрдЯрдореЛрдВ рдореЗрдВ рдкреБрдирдГрд╕рдВрдпреЛрдЬрди рдХреЗ рдмрд┐рдирд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдиреИрдиреЛрдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╣реИ, рдСрдЯреЛрдХреИрдб рдореЗрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдирдмрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрджрд┐рдо рд╡рд░реНрдЧ

рдПрдХ рдирдпрд╛ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореИрдХрдХрд╕реНрдЯрдордмреЗрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдПрдХ рдХрдХреНрд╖рд╛ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрджрд┐рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдШреЛрд╖рд┐рдд рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
  1. [CustomEntity] рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд░реНрдЧ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ, рдЗрд╕рдХрд╛ GUID, рдирд╛рдо рдЬреЛ рдХрд┐ рдбреНрд░рд╛рдЗрдВрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдирд╛рдо рдореЗрдВ рдРрд╕реА рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛,
  2. [Serializable] рд╡рд┐рд╢реЗрд╖рддрд╛, .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдорд╛рдирдХ рдХреНрд░рдорд╛рдВрдХрди рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

[CustomEntity(typeof(TextInBox), "1C925FA1-842B-49CD-924F-4ABF9717DB62", "TextInBox", "TextInBox Sample Entity")] [Serializable] public class TextInBox : McCustomBase { // First and second vertices of the box private Point3d _pnt1 = new Point3d(50, 50, 0); private Point3d _pnt2 = new Point3d(150, 100, 0); // Text inside the box private String _text = "Text field"; } 

рдЕрдм рд╣рдо рдореИрдХрдХреЙрд╕реНрдЯрдмреЗрд╕ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдбреНрд░рд╛рдЗрдВрдЧ рдореЗрдВ рдбрд╛рд▓реЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХрд░реЗрдВред

рдЬреНрдпрд╛рдорд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рди

рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, OnDraw () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреНрдпреЛрдореЗрдЯреНрд░реАрдмреНрдпреВрдЯрд▓ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрджрд┐рдо рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

 public override void OnDraw(GeometryBuilder dc) { dc.Clear(); // Set the color to ByObject value dc.Color = McDbEntity.ByObject; // Draw box with choosen coordinates dc.DrawPolyline(new Point3d[] { _pnt1, new Point3d(_pnt1.X, _pnt2.Y, 0), _pnt2, new Point3d(_pnt2.X, _pnt1.Y, 0), _pnt1}); // Set text height dc.TextHeight = 2.5 * DbEntity.Scale; // Set text color dc.Color = Color.Blue; // Draw text at the box center dc.DrawMText(new Point3d((_pnt2.X + _pnt1.X) / 2.0, (_pnt2.Y + _pnt1.Y) / 2.0, 0), Vector3d.XAxis, Text, HorizTextAlign.Center, VertTextAlign.Center); } 


рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдПрдХ рдбреНрд░рд╛рдЗрдВрдЧ, рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдЗрдирдкреБрдЯ рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдЬреЛрдбрд╝рдирд╛

рдбреНрд░рд╛рдЗрдВрдЧ рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, PlaceObject () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред MultiCAD .NET рдореЗрдВ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП, InputJig рд╡рд░реНрдЧ рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

PlaceObject() рдкрджреНрдзрддрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 public override hresult PlaceObject(PlaceFlags lInsertType) { InputJig jig = new InputJig(); // Get the first box point from the jig InputResult res = jig.GetPoint("Select first point:"); if (res.Result != InputResult.ResultCode.Normal) return hresult.e_Fail; _pnt1 = res.Point; // Add the object to the database DbEntity.AddToCurrentDocument(); // Exclude the object from snap points jig.ExcludeObject(ID); // Monitoring mouse moving and interactive entity redrawing jig.MouseMove = (s, a) => {TryModify(); _pnt2 = a.Point; DbEntity.Update(); }; // Get the second box point from the jig res = jig.GetPoint("Select second point:"); if (res.Result != InputResult.ResultCode.Normal) { DbEntity.Erase(); return hresult.e_Fail; } _pnt2 = res.Point; return hresult.s_Ok; } 


рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рд╕рдВрдкрд╛рджрди рдФрд░ рд░реВрдкрд╛рдВрддрд░рдг

рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореИрдХрдХреЙрд╕реНрдЯрдмреЗрд╕ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдирд┐рд╣рд┐рдд рдирд┐рдореНрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

рд╣реИрдВрдбрд▓ рдПрдХ рдорд╛рд░реНрдХрд░ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд╡рд┐рд╢реЗрд╖ рдмрд┐рдВрджреБ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлреНрд░реЗрдо рдХреЗ рдХреЛрдиреЗ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╣реИрдВрдбрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ:

 public override List OnGetGripPoints() { List arr = new List(); arr.Add(_pnt1); arr.Add(_pnt2); return arr; } 

рдЕрдм, рдЖрд░реЗрдЦрдг рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкреЗрди рдХреЛ рджрд┐рдП рдЧрдП рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

рдЫрд╡рд┐

OnMoveGripPoints () рд╣реИрдВрдбрд▓рд░ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рд╣реИрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдлрд╛рдЗрдирд┐рдВрдЧ рдХреЙрд░реНрдирд░ рдкреЙрдЗрдВрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВ:

 public override void OnMoveGripPoints(List indexes, Vector3d offset, bool isStretch) { if (!TryModify()) return; if (indexes.Count == 2) { _pnt1 += offset; _pnt2 += offset; } else if (indexes.Count == 1) { if (indexes[0] == 0) _pnt1 += offset; else _pnt2 += offset; } } 

рдпрд╣рд╛рдБ рдЗрдВрдбреЗрдХреНрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╣реИрдВрдбрд▓ рдирдВрдмрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдСрдлрд╝рд╕реЗрдЯ рд╣реИрдВрдбрд▓ рдореВрд╡рдореЗрдВрдЯ рд╡реЗрдХреНрдЯрд░ рд╣реИред

рдлрд┐рд░ рд╣рдо рдСрдирдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо () рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдирдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХреЛрдиреЗ рдХреЗ рджреЛрдиреЛрдВ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рдП:

 public override void OnTransform(Matrix3d tfm) { //Save Undo state and set the object status to "Changed" if (!TryModify()) return; _pnt1 = _pnt1.TransformBy(tfm); _pnt2 = _pnt2.TransformBy(tfm); } 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдлрд╝реНрд░реЗрдо рдХреЗ рдЕрдВрджрд░ рдЯреЗрдХреНрд╕реНрдЯ рд▓рд╛рдЗрди рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВред рд╕рдВрдкрд╛рджрди рд╡рд╕реНрддреБ рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдпрд╛ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдЖрдЗрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рд╕рдВрдкрд╛рджрди рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рдлреЙрд░реНрдо рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдорд╛рди рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 public override hresult OnEdit(Point3d pnt, EditFlags lInsertType) { TextInBox_Form frm = new TextInBox_Form(); frm.textBox1.Text = Text; frm.ShowDialog(); Text = frm.textBox1.Text; return hresult.s_Ok; } 


рдЫрд╡рд┐

рд╕рдВрдкрддреНрддрд┐ рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рд╡рд╕реНрддреБ рдЧреБрдг рдЬреЛрдбрд╝рдирд╛

MultiCAD .NET API рдСрдмреНрдЬреЗрдХреНрдЯ рдЧреБрдг рдирд┐рд░реАрдХреНрд╖рдХ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдЧреБрдг рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬрд╣рд╛рдВ .dwg рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реА рдЬрд╛рдПрдЧреА, рдЪрд╛рд╣реЗ рд╡рд╣ рдСрдЯреЛрдХреИрдб рд╣реЛ рдпрд╛ рдиреИрдиреЛ рдХрд╛рд░реНрдбред рдпрд╣ рд╡рд╕реНрддреБ рдХреА рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рд╣рдо рдпрд╣ рдЕрд╡рд╕рд░ рд▓реЗрдВрдЧреЗ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдкреИрд▓реЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ:

 [DisplayName(" ")] [Description(" ")] [Category(" ")] public String Text { get { return _text; } set { //Save Undo state and set the object status to "Changed" if (!TryModify()) return; // Set new text value _text = value; } } 

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╡рд╕реНрддреБ рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдХреЗ рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

рдЫрд╡рд┐

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЖрджрд┐рдо рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдпрд╛, рдЬрд┐рд╕реЗ .dwg рдкреНрд░рд╛рд░реВрдк рдХреА рдПрдХ рдбреНрд░рд╛рдЗрдВрдЧ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ CAD рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреАрд╡рди рдЕрднреА рднреА рдЦрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрджрд┐рдо рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрдврд╝рд╛рдирд╛ рд╣реЛрдЧрд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ, рд╣рдо рдЖрджрд┐рдо рдХреЗ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЬрд╣рд╛рдВ рд╣рдо рдирдП рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рдФрд░ рдЖрдкрдХреЛ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдорд▓реНрдЯреАрдХрд╛рдбрдиреЗрдЯ рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡реНрд╕ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк рджрд┐рдП рдЧрдП рд╣реИрдВред

рд▓реЗрдЦ рдХреА рдЪрд░реНрдЪрд╛ рд╣рдорд╛рд░реЗ рдордВрдЪ рдкрд░ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ: forum.nanocad.ru/index.php?showtopic=6504 ред

рд▓реЗрдЦ рдХрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж: рдорд▓реНрдЯреАрдХрд╛рдб .NET рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╕реАрдПрдбреА рдореЗрдВ рдХрд╕реНрдЯрдо рдЗрдХрд╛рдЗрдпрд╛рдБ рдмрдирд╛рдирд╛ ред

Source: https://habr.com/ru/post/In184482/


All Articles