22/12/2015
Текст мультивыноски соответствующий установкам стиля мультивыноски
Это небольшой пример кода, который создаёт мультивыноску, основанную на существующем стиле мультивыноски. Для того, чтобы текст мультивыноски отражал изменения стиля мультивыноски, необходимо клонировать MLeaderStyle.DefaultText и использовать его в качестве текста мультивыноски. Создание нового MText без клонирования DefaultText приводит к тому, что он в дальнейшем перестаёт отражать изменения, которые происходят с его стилем мультивыноски.Спасибо Xin Xu из команды инженеров AutoCAD за предоставленный совет.
Код - C#: [Выделить]
- [CommandMethod("MLTest")]
- public void MLTestMethod()
- {
- Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
- PromptPointResult ppr1 = ed.GetPoint(
- new PromptPointOptions("Укажите начальную точку "));
- if (ppr1.Status != PromptStatus.OK)
- return;
- PromptPointResult ppr2 = ed.GetPoint(
- new PromptPointOptions("Укажите конечную точку "));
- if (ppr2.Status != PromptStatus.OK)
- return;
- Database db = HostApplicationServices.WorkingDatabase;
- ObjectId myMLeaderId = ObjectId.Null;
- using (Transaction trans
- = db.TransactionManager.StartTransaction())
- {
- ObjectId myleaderStyleId = db.MLeaderstyle;
- MLeaderStyle mlstyle
- = trans.GetObject(myleaderStyleId,
- OpenMode.ForRead) as MLeaderStyle;
- using (MLeader myMLeader = new MLeader())
- {
- myMLeader.SetDatabaseDefaults();
- myMLeader.PostMLeaderToDb(db);
- myMLeaderId = myMLeader.ObjectId;
- myMLeader.MLeaderStyle = db.MLeaderstyle;
- int leaderIndex = myMLeader.AddLeader();
- int leaderLineIndex
- = myMLeader.AddLeaderLine(leaderIndex);
- myMLeader.AddFirstVertex(
- leaderLineIndex, ppr1.Value);
- myMLeader.AddLastVertex(
- leaderLineIndex, ppr2.Value);
- MText myMText
- = mlstyle.DefaultMText.Clone() as MText;
- if (myMText != null)
- {
- myMText.SetContentsRtf("Autodesk");
- myMLeader.MText = myMText;
- }
- }
- trans.Commit();
- }
- }
Источник: http://adndevblog.typepad.com/autocad/2015/11/mleader-text-that-reflects-mleaderstyle-settings.html
Автор перевода: Александр Ривилис
Отредактировано 22.12.2015 в 00:17:00
Обсуждение: http://adn-cis.org/forum/index.php?topic=3293
Опубликовано 22.12.2015Отредактировано 22.12.2015 в 00:17:00