{"id":256492,"date":"2015-05-02T20:38:02","date_gmt":"2015-05-02T16:38:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=256492"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=256492","title":{"rendered":"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0434\u043b\u044f AutoCAD \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e .NET API (\u0447\u0430\u0441\u0442\u044c 4 \u2013 \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432)"},"content":{"rendered":"<p>     \t\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0443\u044e \u0447\u0430\u0441\u0442\u044c <a href=\"http:\/\/habrahabr.ru\/post\/235723\/\"><u>\u0446\u0438\u043a\u043b\u0430<\/u><\/a>, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u043f\u043e\u0434 AutoCAD. \u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u043b\u0438 \u043e\u0431\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u2014 \u0430 \u0442\u0435\u043f\u0435\u0440\u044c, \u0432\u043e\u043e\u0440\u0443\u0436\u0438\u0432\u0448\u0438\u0441\u044c \u044d\u0442\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435, \u0441\u0442\u043e\u044f\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c AutoCAD: \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0447\u0435\u0440\u0442\u0435\u0436\u0430.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u044b \u0441\u0430\u043c\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 (\u043b\u0438\u043d\u0438\u044f, \u043b\u043e\u043c\u0430\u043d\u0430\u044f, \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c, \u044d\u043b\u043b\u0438\u043f\u0441 \u0438 \u043a\u0440\u0443\u0433).<\/p>\n<pre><code>public static string disclaimer = &quot;\u0410\u0432\u0442\u043e\u0440 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0438 \u043d\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 AutoCAD. \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u2013 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430.&quot;; <\/code><\/pre>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h1>\u041f\u0435\u0440\u0435\u0434 \u0440\u0430\u0431\u043e\u0442\u043e\u0439<\/h1>\n<p>  \u0415\u0441\u043b\u0438 \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0430 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435, \u0442\u043e \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0436\u0438\u0437\u043d\u0438 \u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"http:\/\/habrahabr.ru\/post\/148844\/\"><u>\u043f\u043e\u0441\u0442<\/u><\/a>  <a href=\"http:\/\/habrahabr.ru\/users\/namolem\/\" class=\"user_link\">Namolem<\/a> \u2014 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c.<\/p>\n<p>  \u041a\u0440\u0430\u0442\u043a\u043e \u0438\u0437\u043b\u043e\u0436\u0443 \u0441\u0443\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b: \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u00ab\u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u00bb \u0435\u0433\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d, \u043a\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d, \u2014 \u044d\u0442\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c AutoCAD, \u0437\u0430\u0442\u0435\u043c \u0432\u043d\u043e\u0432\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d. \u042d\u0442\u0430 \u043f\u0443\u0441\u0442\u044f\u043a\u043e\u0432\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0442 \u0441\u0438\u043b\u044b \u043f\u0430\u0440\u0443 \u043c\u0438\u043d\u0443\u0442, \u043e\u0434\u043d\u0430\u043a\u043e \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u044f\u0442\u0438\u0434\u0435\u0441\u044f\u0442\u0438-\u0441\u0442\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0439 \u043e\u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0434\u0438\u043a\u043e \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u0442\u044c, \u044f \u0431\u044b \u0434\u0430\u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043b \u2014 <i>\u0431\u0435\u0441\u0438\u0442\u044c<\/i>.<\/p>\n<p>  \u0410\u0432\u0442\u043e\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u044d\u0442\u0430\u043f\u043e\u0432 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0441\u0431\u0435\u0440\u0435\u0447\u044c \u043f\u0430\u0440\u0443 <s>\u0442\u044b\u0441\u044f\u0447<\/s> \u043d\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043b\u0435\u0442\u043e\u043a.<\/p>\n<h1>\u041b\u0438\u043d\u0438\u044f<\/h1>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u043b\u0438\u043d\u0438\u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0442\u0440\u0443\u0434\u0430. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0435\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0432 <a href=\"http:\/\/help.autodesk.com\/view\/ACD\/2016\/ENU\/?guid=GUID-47E8A12E-2ED4-4E78-ADA3-AAC9B4223C3C\"><u>\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/u><\/a> (<a href=\"https:\/\/sites.google.com\/site\/bushmansnetlaboratory\/translate-manual\/sozdanie-i-redaktirovanie-obektov-autocad\/sozdanie-obektov\/sozdanie-otrezkov\/sozdanie-otrezka-line\"><u>\u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/u><\/a>).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043f\u043b\u0430\u0433\u0438\u043d\u0430:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>using System; using System.IO; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.ApplicationServices; using acad = Autodesk.AutoCAD.ApplicationServices.Application;  namespace HabrPlug_Primitives {     public class ClassMyAutoCADDLL     {         public class Commands : IExtensionApplication         {             \/\/ \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0432 AutoCAD \u043a\u043e\u043c\u0430\u043d\u0434\u044b &quot;HabrCommand&quot;             [CommandMethod(&quot;HabrCommand&quot;)]             public void HabrCommand()             {                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414                 Document acDoc = acad.DocumentManager.MdiActiveDocument;                 Database acCurDb = acDoc.Database;                  \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                 using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())                 {                     \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTable acBlkTbl;                     acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;                      \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model View) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430                     BlockTableRecord acBlkTblRec;                     acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;                      \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043c\u0435\u0436\u0434\u0443 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438                     Line acLine = new Line(new Point3d(25, 25, 0), new Point3d(33, 33, 0));                      \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e                     acLine.SetDatabaseDefaults();                      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438                     acBlkTblRec.AppendEntity(acLine);                      \/\/ \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e                     acTrans.AddNewlyCreatedDBObject(acLine, true);                      \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f                     acTrans.Commit();                 }             }              \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Initialize() \u0438 Terminate() \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 IExtensionApplication             public void Initialize()             {              }              public void Terminate()             {              }         }     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e \u0432\u0441\u044f\u043a\u0438\u0435 \u043c\u0435\u043b\u043e\u0447\u0438\u2026)<\/b><\/p>\n<div class=\"spoiler_text\">\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e .NET Framework (\u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e .NET Framework 3.5).<\/p>\n<p>  \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <b>AcDbMgd.dll<\/b> \u0438 <b>AcMgd.dll<\/b> \u0438 \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u044d\u0442\u0438\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0432 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>CopyLocal<\/code> \u0432 <code>False<\/code>).  <\/div>\n<\/div>\n<p>  \u0421\u0430\u043c \u043a\u043e\u0434 \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u0440\u043e\u0441\u0442, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u043e\u0441\u043e\u0431\u043e \u043d\u0435\u0447\u0435\u0433\u043e.<\/p>\n<p>  <u>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445<\/u>, \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e (\u0447\u0442\u043e \u044d\u0442\u043e \u0438 \u0437\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u043d\u043e, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435).<\/p>\n<p>  <u>\u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445<\/u>, \u043c\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (<code>Model View<\/code>) \u2014 \u044d\u0442\u043e, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0438 \u0435\u0441\u0442\u044c \u043d\u0430\u0448 \u0447\u0435\u0440\u0442\u0435\u0436. \u0411\u043e\u043b\u0435\u0435 \u0447\u0435\u0442\u043a\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 Model View \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/sites.google.com\/site\/bushmansnetlaboratory\/translate-manual\/opredelenie-sloeev-i-pecat\/prostranstvo-modeli-model-space-i-prostranstvo-lista-paper-space\"><u>\u0442\u0443\u0442<\/u><\/a> \u0438 <a href=\"http:\/\/help.autodesk.com\/view\/ACD\/2016\/ENU\/?guid=GUID-2A6032EE-58D5-49DB-B7CD-3778A5CFEE0B\"><u>\u0442\u0430\u043c<\/u><\/a>. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u00ab\u0427\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c\u00bb (<code>OpenMode.ForWrite<\/code>).<\/p>\n<p>  <u>\u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445<\/u>, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 \u043b\u0438\u043d\u0438\u044e), \u0443\u043a\u0430\u0437\u0430\u0432 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0438).<\/p>\n<p>  <u>\u0412-\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0445<\/u>, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0434\u0430\u0442\u044c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u0441\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0432\u0441\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0432\u044b\u0437\u0432\u0430\u0432 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>SetDatabaseDefaults()<\/code>. \u0421\u043a\u0443\u043f\u043e\u0435 \u043c\u0443\u0436\u0441\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 <a href=\"http:\/\/docs.autodesk.com\/ACDMAC\/2013\/ENU\/ObjectARX%20Reference\/index.html?frmname=topic&amp;frmfile=!!OVERLOADED_setDatabaseDefaults_AcDbEntity.html\"><u>ObjectARX Reference<\/u><\/a>.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0447\u044c, \u043e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u0442\u044c <a href=\"http:\/\/forums.autodesk.com\/t5\/net\/when-do-we-need-to-use-setdatabasedefaults\/td-p\/4370846\"><u>\u043c\u043d\u0435\u043d\u0438\u0435<\/u><\/a>, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0442\u0430\u043a \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c.  <\/div>\n<\/div>\n<p>  <u>\u0412-\u043f\u044f\u0442\u044b\u0445<\/u>, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (\u043f\u0440\u043e\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u2014 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436). \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>AppendEntity()<\/code>.<\/p>\n<p>  <u>\u0412-\u0448\u0435\u0441\u0442\u044b\u0445<\/u>, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043a \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>AddNewlyCreatedDBObject()<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0436\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0430\u0441\u044c \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p>  <u>\u041d\u0430\u043a\u043e\u043d\u0435\u0446<\/u>, \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043d\u0443\u0436\u043d\u044b\u0445 \u043d\u0430\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e, \u0432\u044b\u0437\u0432\u0430\u0432 \u043c\u0435\u0442\u043e\u0434 <code>Commit()<\/code>.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c AutoCAD, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043d\u0430\u0448 \u043f\u043b\u0430\u0433\u0438\u043d \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u00abHabrCommand\u00bb. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u043e\u0441\u0442 \u2014 \u043d\u043e \u0437\u0430\u0442\u043e, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u043f\u043e\u043d\u044f\u0442\u0435\u043d \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/ba0\/657\/33f\/ba065733f6df4385be20ef564af4538b.png\"\/><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043b\u0438\u043d\u0438\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0442\u0430\u043a \u0438 \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u2014 \u043d\u0435 \u0441\u043f\u0435\u0448\u0438\u0442\u0435 \u0440\u0430\u0441\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c\u0441\u044f. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0446\u0435\u043d\u0442\u0440 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u2014 \u0442\u043e\u0447\u043a\u0430 (0;0) \u2014 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0432\u0438\u0434\u0438\u043c\u043e\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431, \u043f\u043e\u043a\u0440\u0443\u0442\u0438\u0432 \u043a\u043e\u043b\u0435\u0441\u043e\u043c \u043c\u044b\u0448\u0438.<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 AutoCAD \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u043e\u043c \u0442\u043e, \u0447\u0442\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0442\u0435\u0436\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445. \u041f\u0440\u043e\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0441 \u0445\u043e\u0434\u0443 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043e\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 1000% \u043a \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0443 1% \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u2014 \u043f\u043e\u0441\u043b\u0435 \u043f\u0430\u0440\u044b \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043e\u043a \u043a\u043e\u043b\u0435\u0441\u0430 \u043c\u044b\u0448\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u00ab\u0443\u043f\u0440\u0435\u0442\u0441\u044f\u00bb \u0432 \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u0435\u043b\u044c. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0442\u0435\u0436\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <b>REGEN<\/b> \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 AutoCAD.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u0438\u0437 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430: \u0435\u0441\u043b\u0438 <s>\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0432\u043a\u043e\u043d\u0435\u0446 \u0443\u043f\u043e\u0440\u043e\u043b\u0441\u044f, \u0438 \u0435\u043c\u0443 \u0443\u0436\u0435<\/s> \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043a\u0430\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0447\u0438\u0441\u0442\u044b\u0439 \u0447\u0435\u0440\u0442\u0435\u0436, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0439 \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430 \u0438 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435, \u043d\u0430\u0436\u0430\u0432 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u043a\u043b\u0430\u0432\u0438\u0448 \u00abCtrl+A\u00bb. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0442\u0440\u0443\u0434\u0430.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0441\u0432\u0435\u0436\u0438\u043c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u0430\u0440\u0442\u0438\u043d\u0430 \u0414\u041e:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/15b\/df9\/e7b\/15bdf9e7b77e48359eaa639621b53f10.png\"\/><br \/>  \u041d\u0443 \u0438 \u0433\u0434\u0435 \u0437\u0434\u0435\u0441\u044c \u043b\u0438\u043d\u0438\u044f?)  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u0430\u0440\u0442\u0438\u043d\u0430 \u041f\u041e\u0421\u041b\u0415:<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/c01\/6bf\/dfc\/c016bfdfc81e4aa684f0d85ca02b59c0.png\"\/><br \/>  \u041f\u0440\u0438\u0442\u0432\u043e\u0440\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u043f\u044b\u043b\u0438\u043d\u043a\u043e\u0439 \u043d\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0435 \u043b\u0438\u043d\u0438\u044e \u0441 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u0432\u044b\u0434\u0430\u044e\u0442 \u0441\u0438\u043d\u0438\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u043a \u0438 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u0435\u0441\u044f \u043e\u043a\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0430.  <\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<h1>\u041f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u044f<\/h1>\n<p>  \u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u043f\u0440\u0438\u043c\u0435\u0440 \u0435\u0441\u0442\u044c \u0432 <a href=\"http:\/\/help.autodesk.com\/view\/ACD\/2016\/ENU\/?guid=GUID-EC036F5A-1F02-40D3-B348-4193BA58CF0C\"><u>\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/u><\/a> (<a href=\"https:\/\/sites.google.com\/site\/bushmansnetlaboratory\/translate-manual\/sozdanie-i-redaktirovanie-obektov-autocad\/sozdanie-obektov\/sozdanie-otrezkov\/sozdanie-polilinii-polyline\"><u>\u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/u><\/a>).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;HabrCommand&quot;)] public void HabrCommand() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414     Document acDoc = acad.DocumentManager.MdiActiveDocument;     Database acCurDb = acDoc.Database;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())     {         \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTable acBlkTbl;         acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model View) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTableRecord acBlkTblRec;         acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;          \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u044e         Polyline acPolyline = new Polyline();          \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e         acPolyline.SetDatabaseDefaults();          \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u0438 \u0432\u0435\u0440\u0448\u0438\u043d\u044b         acPolyline.AddVertexAt(0, new Point2d(2, 4), 0, 0, 0);         acPolyline.AddVertexAt(1, new Point2d(4, 8), 0, 0, 0);         acPolyline.AddVertexAt(2, new Point2d(6, 6), 0, 0, 0);         acPolyline.AddVertexAt(3, new Point2d(8, 11), 0, 0, 0);          \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438         acBlkTblRec.AppendEntity(acPolyline);          \/\/ \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e         acTrans.AddNewlyCreatedDBObject(acPolyline, true);          \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f         acTrans.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/683\/bc9\/a86\/683bc9a8647746a8babebd201c6f69cb.png\"\/><\/p>\n<p>  \u041f\u043e\u044f\u0441\u043d\u044f\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0435\u0447\u0435\u0433\u043e. \u041f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432 <s>\u0442\u0440\u043e\u043b\u043b\u0435\u0439\u0431\u0443\u0441<\/s> \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u0443\u044e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0444\u0438\u0433\u0443\u0440\u0443 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0443\u2026  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">&#8230;\u0438\u043b\u0438 \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0442\u0440\u043e\u043b\u043b\u0435\u0439\u0431\u0443\u0441?<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">[CommandMethod(&quot;HabrCommand&quot;)] public void HabrCommand() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414     Document acDoc = acad.DocumentManager.MdiActiveDocument;     Database acCurDb = acDoc.Database;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())     {         \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTable acBlkTbl;         acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model View) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTableRecord acBlkTblRec;         acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;          \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0440\u043e\u043b\u043b\u0435\u0439\u0431\u0443\u0441         Polyline acPolyline = new Polyline();          \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0440\u043e\u043b\u043b\u0435\u0439\u0431\u0443\u0441\u0430 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e         acPolyline.SetDatabaseDefaults();          \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u0442\u0440\u043e\u043b\u043b\u0435\u0439\u0431\u0443\u0441\u0443 \u0432\u0435\u0440\u0448\u0438\u043d\u044b         acPolyline.AddVertexAt(0, new Point2d(100, 100), 0, 0, 0);         acPolyline.AddVertexAt(1, new Point2d(100, 650), 0, 0, 0);         acPolyline.AddVertexAt(2, new Point2d(1050, 650), 0, 0, 0);         acPolyline.AddVertexAt(3, new Point2d(650, 1150), 0, 0, 0);         acPolyline.AddVertexAt(4, new Point2d(1050, 650), 0, 0, 0);         acPolyline.AddVertexAt(5, new Point2d(2050, 650), 0, 0, 0);         acPolyline.AddVertexAt(6, new Point2d(2050, 100), 0, 0, 0);         acPolyline.AddVertexAt(7, new Point2d(1950, 100), 0, 0, 0);         acPolyline.AddVertexAt(8, new Point2d(1950, 400), 0, 0, 0);         acPolyline.AddVertexAt(9, new Point2d(1800, 400), 0, 0, 0);         acPolyline.AddVertexAt(10, new Point2d(1800, 100), 0, 0, 0);         acPolyline.AddVertexAt(11, new Point2d(1950, 100), 0, 0, 0);         acPolyline.AddVertexAt(12, new Point2d(1700, 100), 0, 0, 0);         acPolyline.AddVertexAt(13, new Point2d(1660, 170), 0, 0, 0);         acPolyline.AddVertexAt(14, new Point2d(1600, 225), 0, 0, 0);         acPolyline.AddVertexAt(15, new Point2d(1500, 225), 0, 0, 0);         acPolyline.AddVertexAt(16, new Point2d(1440, 170), 0, 0, 0);         acPolyline.AddVertexAt(17, new Point2d(1400, 100), 0, 0, 0);         acPolyline.AddVertexAt(18, new Point2d(850, 100), 0, 0, 0);         acPolyline.AddVertexAt(19, new Point2d(1200, 100), 0, 0, 0);         acPolyline.AddVertexAt(20, new Point2d(1200, 400), 0, 0, 0);         acPolyline.AddVertexAt(21, new Point2d(1000, 400), 0, 0, 0);         acPolyline.AddVertexAt(22, new Point2d(1000, 100), 0, 0, 0);         acPolyline.AddVertexAt(23, new Point2d(1100, 100), 0, 0, 0);         acPolyline.AddVertexAt(24, new Point2d(1100, 400), 0, 0, 0);         acPolyline.AddVertexAt(25, new Point2d(1100, 100), 0, 0, 0);         acPolyline.AddVertexAt(26, new Point2d(850, 100), 0, 0, 0);         acPolyline.AddVertexAt(27, new Point2d(810, 170), 0, 0, 0);         acPolyline.AddVertexAt(28, new Point2d(750, 225), 0, 0, 0);         acPolyline.AddVertexAt(29, new Point2d(650, 225), 0, 0, 0);         acPolyline.AddVertexAt(30, new Point2d(590, 170), 0, 0, 0);         acPolyline.AddVertexAt(31, new Point2d(550, 100), 0, 0, 0);         acPolyline.AddVertexAt(32, new Point2d(100, 100), 0, 0, 0);         acPolyline.AddVertexAt(33, new Point2d(450, 100), 0, 0, 0);         acPolyline.AddVertexAt(34, new Point2d(450, 400), 0, 0, 0);         acPolyline.AddVertexAt(35, new Point2d(250, 400), 0, 0, 0);         acPolyline.AddVertexAt(36, new Point2d(250, 100), 0, 0, 0);         acPolyline.AddVertexAt(37, new Point2d(350, 100), 0, 0, 0);         acPolyline.AddVertexAt(38, new Point2d(350, 400), 0, 0, 0);          \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0442\u0440\u043e\u043b\u043b\u0435\u0439\u0431\u0443\u0441 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438         acBlkTblRec.AppendEntity(acPolyline);          \/\/ \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0442\u0440\u043e\u043b\u043b\u0435\u0439\u0431\u0443\u0441 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e         acTrans.AddNewlyCreatedDBObject(acPolyline, true);          \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f         acTrans.Commit();     } } <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/4a4\/eaa\/fc8\/4a4eaafc82d8408eb3e47017564845f6.PNG\"\/><\/p>\n<p>  \u0414\u0430, \u044f \u0442\u043e\u0436\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u0443 \u0442\u0440\u043e\u043b\u043b\u0435\u0439\u0431\u0443\u0441\u0430 \u043d\u0435\u0442 \u043a\u043e\u043b\u0435\u0441. \u041d\u043e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u043c\u044b \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0435\u0449\u0435 \u043d\u0435 \u0443\u043c\u0435\u0435\u043c, \u0430 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0435 \u043a\u043e\u043b\u0435\u0441\u0430\u2026 \u041d\u0435\u0442, \u043f\u0443\u0441\u0442\u044c \u0443\u0436 \u043b\u0443\u0447\u0448\u0435 \u0435\u0434\u0435\u0442 \u0442\u0430\u043a.  <\/div>\n<\/div>\n<p>  <\/p>\n<h1>\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c<\/h1>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u0438\u043b\u0435\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u043d\u044b\u0439 \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 (\u0441\u0441\u044b\u043b\u043a\u0438 \u0431\u044b\u043b\u0438 \u0432\u044b\u0448\u0435).  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;HabrCommand&quot;)] public void HabrCommand() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414     Document acDoc = acad.DocumentManager.MdiActiveDocument;     Database acCurDb = acDoc.Database;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())     {         \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTable acBlkTbl;         acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model View) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTableRecord acBlkTblRec;         acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;          \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c         Circle acCircle = new Circle();          \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430         acCircle.SetDatabaseDefaults();         acCircle.Center = new Point3d(2.5, 3.14, 0);         acCircle.Radius = 4.25;          \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438         acBlkTblRec.AppendEntity(acCircle);          \/\/ \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e         acTrans.AddNewlyCreatedDBObject(acCircle, true);          \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f         acTrans.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u044b\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e: \u0432\u0441\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u2014 \u044d\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0446\u0435\u043d\u0442\u0440 \u0438 \u0440\u0430\u0434\u0438\u0443\u0441.<\/p>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/826\/4d5\/fcc\/8264d5fccaaf494897d45a92fa09a0fc.png\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043d\u0435\u043f\u0440\u044f\u043c\u044b\u043c\u0438 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u0440\u044f\u0434\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435.<\/p>\n<p>  \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0435\u0441\u043b\u0438 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u00abHabrCommand\u00bb \u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0442\u0434\u0430\u043b\u0435\u043d\u0438\u0438, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 (\u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0447\u0435\u0440\u0442\u0435\u0436\u0430), \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c\u0441\u044f \u044d\u0444\u0444\u0435\u043a\u0442, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043d\u0438\u0436\u0435. \u0422\u0435, \u043a\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 AutoCAD, \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043a \u0442\u0430\u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u2014 \u0430 \u0432\u043e\u0442 \u044f, \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0443\u0432\u0438\u0434\u0435\u0432, \u0432\u043e \u0447\u0442\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0430\u0441\u044c \u043c\u043e\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c, \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u043b\u0433\u043e \u0438\u0441\u043a\u0430\u043b \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u043a\u043e\u0434\u0435 \u0438 \u0443\u0431\u0438\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u043e\u0432, \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u00ab\u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438\u00bb.) <\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/36f\/164\/ada\/36f164adaef148218050a07934349f77.png\"\/><\/p>\n<p>  \u0414\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 AutoCAD \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <b>REGEN<\/b>:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/4bf\/8a3\/673\/4bf8a367390f4f179655287c819ababd.png\"\/><\/p>\n<p>  \u0415\u0449\u0435 \u0440\u0430\u0437 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438 <i>\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438<\/i>. \u0412\u043d\u0443\u0442\u0440\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c\u044e, \u043a\u0435\u043c \u0431\u044b \u043e\u043d\u0430 \u043d\u0438 \u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0441\u043d\u0430\u0440\u0443\u0436\u0438.  <\/div>\n<\/div>\n<p>  <\/p>\n<h1>\u042d\u043b\u043b\u0438\u043f\u0441<\/h1>\n<p>  \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u043b\u043b\u0438\u043f\u0441\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438: \u0435\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b <a href=\"http:\/\/adndevblog.typepad.com\/autocad\/2012\/05\/creating-an-ellipse.html\"><u>\u0437\u0434\u0435\u0441\u044c<\/u><\/a>).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;HabrCommand&quot;)] public void HabrCommand() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414     Document acDoc = acad.DocumentManager.MdiActiveDocument;     Database acCurDb = acDoc.Database;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())     {         \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTable acBlkTbl;         acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model View) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTableRecord acBlkTblRec;         acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;          \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044d\u043b\u043b\u0438\u043f\u0441\u0430         Point3d center = Point3d.Origin;         Vector3d normal = Vector3d.ZAxis;         Vector3d majorAxis = 100 * Vector3d.XAxis;         double radiusRatio = 0.5;         double startAng = 0.0;         double endAng = Math.PI * 2;         \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u044d\u043b\u043b\u0438\u043f\u0441, \u0441\u0440\u0430\u0437\u0443 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u0435\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b         Ellipse acEllipse = new Ellipse(center, normal, majorAxis, radiusRatio, startAng, endAng);          \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438         acBlkTblRec.AppendEntity(acEllipse);          \/\/ \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e         acTrans.AddNewlyCreatedDBObject(acEllipse, true);          \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f         acTrans.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 (\u0441\u0438\u043d\u044f\u044f \u043b\u0438\u043d\u0438\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f):<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/cde\/2fb\/66b\/cde2fb66bd2443f38801eaef92f2bd54.png\"\/><\/p>\n<p>  \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u044d\u043b\u043b\u0438\u043f\u0441\u0430 \u043c\u044b \u0437\u0430\u0434\u0430\u043b\u0438 \u0435\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:  <\/p>\n<ol>\n<li>\u0426\u0435\u043d\u0442\u0440 (center) \u044d\u043b\u043b\u0438\u043f\u0441\u0430 \u2014 \u0441 \u044d\u0442\u0438\u043c \u0432\u0441\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e.<\/li>\n<li>\u041d\u043e\u0440\u043c\u0430\u043b\u044c (normal) \u2014 \u0432\u0435\u043a\u0442\u043e\u0440, \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u044d\u043b\u043b\u0438\u043f\u0441\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c XY, \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u044e \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u044c Z.<\/li>\n<li>\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u043e\u0441\u044c (majorAxis) \u2014 \u0432 \u043f\u043e\u043d\u044f\u0442\u0438\u044f\u0445 AutoCAD \u044d\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0441 \u0434\u043b\u0438\u043d\u043e\u0439, \u0440\u0430\u0432\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0435 \u00ab\u0448\u0438\u0440\u0438\u043d\u044b\u00bb \u044d\u043b\u043b\u0438\u043f\u0441\u0430 (\u043a\u0430\u043a \u0441\u0438\u043d\u0438\u0439 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435). \u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435 \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u043e\u043b\u0443\u043e\u0441\u044c\u00bb. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0437\u0430\u0434\u0430\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440 \u0434\u043b\u0438\u043d\u043e\u0439 100, \u043f\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u0441 \u043e\u0441\u044c\u044e \u0430\u0431\u0441\u0446\u0438\u0441\u0441.<\/li>\n<li>\u0420\u0430\u0434\u0438\u0443\u0441 (radiusRatio) \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0442\u044f\u043d\u0443\u0442 \u044d\u043b\u043b\u0438\u043f\u0441. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 \u044d\u043b\u043b\u0438\u043f\u0441\u0430 \u043f\u043e \u043e\u0441\u0438 Y \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 100 * 0.5 = 50.<\/li>\n<li>\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0443\u0433\u043b\u044b \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0443\u0433\u043b\u044b \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043a\u0440\u0438\u0432\u044b\u0445. \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043f\u043e\u044f\u0441\u043d\u044f\u0435\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043d\u0438\u0436\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0437\u044f\u0442\u0430 <a href=\"http:\/\/knowledge.autodesk.com\/support\/autocad-utility-design\/getting-started\/caas\/CloudHelp\/cloudhelp\/2016\/PTB\/AutoCAD-ActiveX\/files\/GUID-5F2762C5-A24D-4A35-92F3-AC31311BE503-htm.html\"><u>\u043e\u0442\u0441\u044e\u0434\u0430<\/u><\/a>).<br \/>   <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/fb1\/08c\/64b\/fb108c64b6ad437397e7287e86914d46.png\"\/>   <\/li>\n<\/ol>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u0444\u0438\u0433\u0443\u0440\u0443, \u043d\u0443\u0436\u043d\u043e \u00ab\u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0442\u044c\u00bb \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u0440\u0443\u0433, \u0442\u043e \u0435\u0441\u0442\u044c 360 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432, \u0438\u043b\u0438 2pi (\u043a\u0430\u043a \u0432 \u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442). \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0436\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435, \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u044d\u043b\u043b\u0438\u043f\u0441\u0430.<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u0434\u0430\u0442\u044c \u044d\u043b\u043b\u0438\u043f\u0441\u0443 \u043d\u043e\u0432\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:   <\/p>\n<pre><code class=\"cs\">Point3d center = Point3d.Origin; Vector3d normal = Vector3d.ZAxis; Vector3d majorAxis = 100 * Vector3d.XAxis + 100 * Vector3d.YAxis; double radiusRatio = 0.5; double startAng = Math.PI * 0.1; double endAng = Math.PI * 1.3; Ellipse acEllipse = new Ellipse(center, normal, majorAxis, radiusRatio, startAng, endAng); <\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 (\u043b\u0438\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0430 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f):<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/cfa\/b9b\/ac3\/cfab9bac399745f9bd0906383fda3aa3.PNG\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>startAng<\/code> \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0443\u043b\u044f, \u0432\u0435\u0440\u0445\u043d\u044f\u044f \u0447\u0430\u0441\u0442\u044c \u044d\u043b\u043b\u0438\u043f\u0441\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u0442 \u043e\u0441\u0438, \u0430 \u0447\u0443\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>endAng<\/code> \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0435 \u0434\u043e\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u0434\u043e 2pi, \u043d\u0438\u0436\u043d\u044f\u044f \u0447\u0430\u0441\u0442\u044c \u044d\u043b\u043b\u0438\u043f\u0441\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u043d\u044c\u0448\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e.<\/p>\n<p>  \u041d\u0430\u043a\u043b\u043e\u043d \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043e\u0441\u0438 (<code>majorAxis = 100 * Vector3d.XAxis + 100 * Vector3d.YAxis<\/code>). \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 X-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u0440\u0430\u0432\u043d\u0430 Y-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043d\u0430\u043a\u043b\u043e\u043d 45 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432.<\/p>\n<p>  \u0414\u043b\u0438\u043d\u0443 \u043f\u043e\u043b\u0443\u043e\u0441\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e \u0442\u0435\u043e\u0440\u0435\u043c\u0435 \u041f\u0438\u0444\u0430\u0433\u043e\u0440\u0430: \u044d\u0442\u043e \u043a\u043e\u0440\u0435\u043d\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439 \u0438\u0437 \u0441\u0443\u043c\u043c\u044b \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 X \u0438 Y. \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0432 \u043a\u043e\u0440\u0435\u043d\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439 \u0438\u0437 100<sup>2<\/sup> + 100<sup>2<\/sup> (\u0438\u0442\u043e\u0433\u043e 20000), \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043e\u043a\u043e\u043b\u043e 141. \u041e\u0431\u0449\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u044d\u043b\u043b\u0438\u043f\u0441\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 282.  <\/div>\n<\/div>\n<p>  <\/p>\n<h1>\u041a\u0440\u0443\u0433<\/h1>\n<p>  \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u0440\u0443\u0433\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0443 \u2014 <code>Hatch<\/code> (<a href=\"http:\/\/docs.autodesk.com\/CIV3D\/2014\/RUS\/index.html?url=filesACD\/GUID-26CEE5F5-F141-4256-B652-859F5D1330B0.htm,topicNumber=ACDd30e703757\"><u>\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/u><\/a>, <a href=\"https:\/\/sites.google.com\/site\/bushmansnetlaboratory\/translate-manual\/sozdanie-i-redaktirovanie-obektov-autocad\/sozdanie-obektov\/sozdanie-strihovok-hatches\"><u>\u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/u><\/a>).<\/p>\n<p>  \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c:  <\/p>\n<ol>\n<li>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043b\u044e\u0431\u0430\u044f \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u0430\u044f \u043a\u0440\u0438\u0432\u0430\u044f \u2014 \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c.<\/li>\n<li>\u0417\u0430\u0434\u0430\u0435\u043c \u0434\u043b\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430.<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436.<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438, \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043d\u0435\u0433\u043e \u043d\u0430\u0448\u0443 \u0433\u0440\u0430\u043d\u0438\u0446\u0443.<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0443.<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0443 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436.<\/li>\n<li>\u0417\u0430\u0434\u0430\u0435\u043c \u0434\u043b\u044f \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430.<\/li>\n<\/ol>\n<p>  \u0428\u0430\u0433\u043e\u0432 \u043f\u043e\u043f\u0440\u0438\u0431\u0430\u0432\u0438\u043b\u043e\u0441\u044c, \u043d\u043e \u043e\u043d\u0438 \u0432\u0441\u0435 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u0435.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;HabrCommand&quot;)] public void HabrCommand() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414     Document acDoc = acad.DocumentManager.MdiActiveDocument;     Database acCurDb = acDoc.Database;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())     {         \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTable acBlkTbl;         acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model View) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTableRecord acBlkTblRec;         acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;          \/\/ 1) \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c - \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438         Circle acCircle = new Circle();          \/\/ 2) \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438         acCircle.SetDatabaseDefaults();         acCircle.Center = new Point3d(2.5, 3.14, 0);         acCircle.Radius = 4.25;           \/\/ 3) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e         acBlkTblRec.AppendEntity(acCircle);         acTrans.AddNewlyCreatedDBObject(acCircle, true);          \/\/ 4) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432-\u0433\u0440\u0430\u043d\u0438\u0446 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438         ObjectIdCollection acObjIdColl = new ObjectIdCollection();         acObjIdColl.Add(acCircle.ObjectId);          \/\/ 5) \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0443         Hatch acHatch = new Hatch();          \/\/ 6) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0443 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e         acBlkTblRec.AppendEntity(acHatch);         acTrans.AddNewlyCreatedDBObject(acHatch, true);          \/\/ 7) \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438         acHatch.SetDatabaseDefaults();         acHatch.SetHatchPattern(HatchPatternType.PreDefined, &quot;SOLID&quot;);         acHatch.Color = Autodesk.AutoCAD.Colors.Color.FromRgb(0, 200, 0);         acHatch.Associative = true;         acHatch.AppendLoop(HatchLoopTypes.Outermost, acObjIdColl);         acHatch.EvaluateHatch(true);          \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f         acTrans.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/657\/c7b\/d75\/657c7bd75305490aa1f5ff7751b8b10c.PNG\"\/><\/p>\n<p>  \u0427\u0430\u0441\u0442\u044c, \u0433\u0434\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438, \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0438 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436. \u0427\u0430\u0441\u0442\u044c, \u0433\u0434\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0430, \u0442\u043e\u0436\u0435 \u0432 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f\u0445 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f. \u041e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0447\u0430\u0441\u0442\u044c, \u0433\u0434\u0435 \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438. \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u043d\u0430 \u043d\u0435\u0439 \u043f\u043e\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/p>\n<p>  \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>setDatabaseDefaults()<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u044b\u043b\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435.<\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u0438\u043f \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>SetHatchPattern()<\/code>. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043a\u0440\u0443\u0433, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0442\u0438\u043f <code>SOLID<\/code> \u2014 \u00ab\u0441\u043f\u043b\u043e\u0448\u043d\u0430\u044f\u00bb.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0438\u043f \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438, \u043f\u043e\u043c\u0438\u043c\u043e \u0441\u043f\u043b\u043e\u0448\u043d\u043e\u0439. \u00ab\u0418\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb AutoCAD \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043e\u043a \u2014 \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u0443\u0437\u043d\u0430\u0442\u044c, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Hatch:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/719\/7ce\/c2f\/7197cec2fb1040f8a7a7c1c930849428.png\"\/><\/p>\n<p>  \u0412\u043c\u0435\u0441\u0442\u043e <code>SOLID<\/code> \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u043a\u0430\u0437\u0430\u0432 <code>HOUND<\/code>, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0431\u044b \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/c50\/300\/4bd\/c503004bd18b4a579c0a36cec6c4fdef.png\"\/><\/p>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043e\u043a (<code>HatchPatternType.PreDefined<\/code>) \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043a AutoCAD. \u0412\u043e\u0442 <a href=\"http:\/\/adndevblog.typepad.com\/autocad\/2013\/04\/einvalidinput-while-creating-hatch-with-customdefined-pattern.html\"><u>\u0441\u0441\u044b\u043b\u043a\u0430<\/u><\/a> \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440.  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u0430 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u044f \u0443\u043a\u0430\u0437\u0430\u043b \u0435\u0435 \u0446\u0432\u0435\u0442 (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>Color<\/code>) \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>FromRgb(byte ref, byte blue, byte green)<\/code>.<\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>Associative<\/code> \u2014 \u043e\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0430 \u043c\u0435\u043d\u044f\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0435\u0435 \u0433\u0440\u0430\u043d\u0438\u0446.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\u0412\u043e\u0442 \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c (<code>Associative = true<\/code>) \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u043d\u0438\u0446 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/2b3\/e4a\/ff0\/2b3e4aff08764a40ba705ee35c3ebc9f.png\"\/><\/p>\n<p>  \u041d\u043e\u0432\u044b\u0439 \u0440\u0430\u0434\u0438\u0443\u0441 \u043a\u0440\u0443\u0433\u0430 \u2014 5, \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0430 \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u043b\u0430\u0441\u044c \u043f\u043e\u0434 \u043d\u043e\u0432\u044b\u0439 \u0440\u0430\u0434\u0438\u0443\u0441.<\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 <code>Associative = false<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/4e5\/961\/ff5\/4e5961ff568b451aabd2653e66af6bdb.png\"\/><\/p><\/div>\n<\/div>\n<p>  \u0412 <a href=\"http:\/\/docs.autodesk.com\/CIV3D\/2014\/RUS\/index.html?url=filesACD\/GUID-26CEE5F5-F141-4256-B652-859F5D1330B0.htm,topicNumber=ACDd30e703757\"><u>\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/u><\/a> (<a href=\"https:\/\/sites.google.com\/site\/bushmansnetlaboratory\/translate-manual\/sozdanie-i-redaktirovanie-obektov-autocad\/sozdanie-obektov\/sozdanie-strihovok-hatches\/opredelenie-granic-strihovki\"><u>\u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/u><\/a>) \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>Associative<\/code> \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0448\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 (\u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438) \u0438 \u0434\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 <code>AppendLoop<\/code>.<\/p>\n<p>  \u041c\u0435\u0442\u043e\u0434 <code>AppendLoop<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430: \u0442\u0438\u043f \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432-\u0433\u0440\u0430\u043d\u0438\u0446 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 <code>HatchLoopTypes.Outermost<\/code>, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u0432, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u043c \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432-\u0433\u0440\u0430\u043d\u0438\u0446 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">NB:<\/b><\/p>\n<div class=\"spoiler_text\">\u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0433\u0440\u0430\u043d\u0438\u0446 \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u043f\u0440\u0438 \u0438\u0445 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0435\u0441\u0442\u044c <a href=\"http:\/\/help.autodesk.com\/view\/ACD\/2016\/ENU\/?guid=GUID-89CAED67-B3A0-4045-9D8B-9034D67E8D91\"><u>\u0437\u0434\u0435\u0441\u044c<\/u><\/a>; \u044f \u0436\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0443\u0441\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0442\u0430\u043a\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/e0b\/467\/2b4\/e0b4672b4c1a41ad89fe30d0681170f9.png\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>[CommandMethod(&quot;HabrCommand&quot;)] public void HabrCommand() {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0411\u0414     Document acDoc = acad.DocumentManager.MdiActiveDocument;     Database acCurDb = acDoc.Database;      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e     using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())     {         \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTable acBlkTbl;         acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;          \/\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 (Model View) - \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430         BlockTableRecord acBlkTblRec;         acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;          \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443         Polyline acPolyline = new Polyline();         acPolyline.SetDatabaseDefaults();         acPolyline.AddVertexAt(0, new Point2d(50, 50), 0, 0, 0);         acPolyline.AddVertexAt(1, new Point2d(150, 285), 0, 0, 0);         acPolyline.AddVertexAt(2, new Point2d(250, 50), 0, 0, 0);         acPolyline.AddVertexAt(3, new Point2d(25, 200), 0, 0, 0);         acPolyline.AddVertexAt(4, new Point2d(275, 200), 0, 0, 0);         acPolyline.AddVertexAt(5, new Point2d(50, 50), 0, 0, 0);         acBlkTblRec.AppendEntity(acPolyline);         acTrans.AddNewlyCreatedDBObject(acPolyline, true);          \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432-\u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0433\u0440\u0430\u043d\u0438\u0446         ObjectIdCollection acObjIdColl_OUTER = new ObjectIdCollection();         acObjIdColl_OUTER.Add(acPolyline.ObjectId);          \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443         Circle acCircleOut = new Circle();         acCircleOut.SetDatabaseDefaults();         acCircleOut.Center = new Point3d(150, 165, 0);         acCircleOut.Radius = 25;         acBlkTblRec.AppendEntity(acCircleOut);         acTrans.AddNewlyCreatedDBObject(acCircleOut, true);          \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432-\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0433\u0440\u0430\u043d\u0438\u0446         ObjectIdCollection acObjIdColl_INNER = new ObjectIdCollection();         acObjIdColl_INNER.Add(acCircleOut.ObjectId);          \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0443         Hatch acHatch = new Hatch();         acBlkTblRec.AppendEntity(acHatch);         acTrans.AddNewlyCreatedDBObject(acHatch, true);          \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438         acHatch.SetDatabaseDefaults();         acHatch.SetHatchPattern(HatchPatternType.PreDefined, &quot;SOLID&quot;);         acHatch.Color = Autodesk.AutoCAD.Colors.Color.FromRgb(200, 0, 0);         acHatch.Associative = false;         acHatch.HatchStyle = HatchStyle.Normal;         \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438         acHatch.AppendLoop(HatchLoopTypes.Outermost, acObjIdColl_OUTER);         \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438         acHatch.AppendLoop(HatchLoopTypes.Default, acObjIdColl_INNER);         acHatch.EvaluateHatch(true);          \/\/ \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f         acTrans.Commit();     } } <\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b. \u0427\u0442\u043e\u0431\u044b \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0430 \u0441\u043c\u043e\u0433\u043b\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, AutoCAD \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u044b. \u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>EvaluateHatch<\/code>.<\/p>\n<p>  \u0412\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0448\u0442\u0440\u0438\u0445\u043e\u0432\u043a\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b. \u041c\u044b \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0435\u0435 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436 \u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u043d\u0430 \u0448\u0430\u0433\u0435 6. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e, \u0447\u0442\u043e\u0431\u044b AutoCAD \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b \u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a &#8212; \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u043f\u0440\u043e \u043a\u0440\u0443\u0433.<\/b><\/p>\n<div class=\"spoiler_text\">\u0418\u043d\u043e\u0433\u0434\u0430 \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0447\u0435\u0440\u0442\u0435\u0436\u043e\u043c \u043f\u0440\u044f\u043c\u043e \u0432 AutoCAD (\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u044f \u0445\u043e\u0442\u0435\u043b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u0430\u0445 \u2014 \u0442\u0430\u043c \u044d\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e). \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u0440\u0443\u0433\u0430 \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <b>DONUT<\/b> \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 AutoCAD. \u0415\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/p>\n<pre><code>DONUT &lt;\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0440\u0430\u0434\u0438\u0443\u0441&gt; &lt;\u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0440\u0430\u0434\u0438\u0443\u0441&gt; &lt;\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b&gt; <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0434\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <b>DONUT<\/b> \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code>DONUT 0 25 50,50 DONUT 25 75 200,50 <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/e87\/388\/c98\/e87388c98409433897f92759da0178a1.png\"\/><\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u043a\u0430\u043a\u043e\u0439 \u043a\u0440\u0443\u0433 \u0431\u043e\u043b\u044c\u0448\u0435 \u2014 \u0447\u0435\u0440\u043d\u044b\u0439 \u0438\u043b\u0438 \u0431\u0435\u043b\u044b\u0439?)  <\/div>\n<\/div>\n<p>  <\/p>\n<h1>P. S.<\/h1>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u2014 \u0437\u0430\u0442\u043e, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u0441\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e. AutoCAD .NET API \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0447\u0435\u0440\u0447\u0438\u0432\u0430\u0442\u044c \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0443\u0433\u0438 \u0438 \u0441\u043f\u043b\u0430\u0439\u043d\u044b \u2014 \u043d\u043e \u043c\u043d\u0435 \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0434\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u044d\u0442\u043e\u043c, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0432 <a href=\"http:\/\/docs.autodesk.com\/MAP\/2014\/ENU\/index.html?url=filesACD\/GUID-DE29EA57-7E55-4AC0-B3B3-68749CA0DC0C.htm,topicNumber=ACDd30e705300\"><u>\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/u><\/a> (<a href=\"https:\/\/sites.google.com\/site\/bushmansnetlaboratory\/translate-manual\/sozdanie-i-redaktirovanie-obektov-autocad\/sozdanie-obektov\"><u>\u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/u><\/a>).<\/p>\n<p>  \u0412\u043e\u043e\u0431\u0449\u0435 \u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u0437\u0434\u0435\u0441\u044c \u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432, \u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u0438 \u0442\u0430\u043a \u0443\u0436\u0435 \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e \u043d\u0430\u0431\u0435\u0436\u0430\u043b\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u044d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u044b \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<br \/>  \u041b\u044e\u0431\u044b\u0435 \u043e\u0442\u0437\u044b\u0432\u044b, \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u0436\u0435\u043b\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.)     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/257129\/\"> http:\/\/habrahabr.ru\/post\/257129\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0443\u044e \u0447\u0430\u0441\u0442\u044c <a href=\"http:\/\/habrahabr.ru\/post\/235723\/\"><u>\u0446\u0438\u043a\u043b\u0430<\/u><\/a>, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u043f\u043e\u0434 AutoCAD. \u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u043b\u0438 \u043e\u0431\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u2014 \u0430 \u0442\u0435\u043f\u0435\u0440\u044c, \u0432\u043e\u043e\u0440\u0443\u0436\u0438\u0432\u0448\u0438\u0441\u044c \u044d\u0442\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435, \u0441\u0442\u043e\u044f\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c AutoCAD: \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0447\u0435\u0440\u0442\u0435\u0436\u0430.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u044b \u0441\u0430\u043c\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u0447\u0435\u0440\u0442\u0435\u0436\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 (\u043b\u0438\u043d\u0438\u044f, \u043b\u043e\u043c\u0430\u043d\u0430\u044f, \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u044c, \u044d\u043b\u043b\u0438\u043f\u0441 \u0438 \u043a\u0440\u0443\u0433).<\/p>\n<pre><code>public static string disclaimer = &quot;\u0410\u0432\u0442\u043e\u0440 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0438 \u043d\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 AutoCAD. \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u2013 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430.&quot;; <\/code><\/pre>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-256492","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/256492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=256492"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/256492\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=256492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=256492"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=256492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}