Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Захаров Максим от 27-04-2020, 10:31:14

Название: Создать формулу в Мтексте
Отправлено: Захаров Максим от 27-04-2020, 10:31:14
Здраввтсуйте.
Посоветуйте пожалуйста как мне правильно создать формулу. Допустим мне надо вычислить площадь полилинии, я делаю так вставляю в МТекст строку
"Площадь " & "%<\AcObjProp Object(%<\_ObjId " & id_Obj & ">%).Area \f " & """" & "%lu2%pr0" & """" & ">%" & " кв.м."
Все нормально работает. А вот как мне составить формулу. Скажам мне надо площадь одной полилинии вычесть из площади другой
Название: Re: Создать формулу в Мтексте
Отправлено: Александр Ривилис от 27-04-2020, 10:52:54
Захаров Максим,
Создай то, что тебе нужно в редакторе полей, а потом скопируй его как текст.
Название: Re: Создать формулу в Мтексте
Отправлено: Захаров Максим от 27-04-2020, 11:14:04
Так и сделал
%<\AcExpr (%<\_FldPtr 2365076394016>%+%<\_FldPtr 2365076393184>%)>%
Но не работает, я так понимаю надо сперва сделать поля (Dim field As Field = New Field(strSqr))  с площадью для каждой полилинии и потом в формуле уже складывать ID этих полей? Или нет? Я сейчас так пытаюсь сделать
Название: Re: Создать формулу в Мтексте
Отправлено: Александр Ривилис от 27-04-2020, 11:40:33
Попробуй так:
Код - C# [Выбрать]
  1. "%<\AcExpr (%<\AcObjProp Object(%<\_ObjId XXXXXXXX>%).Area>%-%<\AcObjProp Object(%<\_ObjId YYYYYYYY>%).Area>%) \f "%lu2%pr0>%"
(где XXXXXXXX и YYYYYYYY - ObjectId соответствующих полилиний).
Название: Re: Создать формулу в Мтексте
Отправлено: Захаров Максим от 27-04-2020, 16:36:18
Спасибо Александр. Действительно работает