В последнее время я отказался делать внутреннюю маркировку в объекте. Во первых потому что она не всегда нужна, соответственно в некоторых случаях от неё приходится избавляться, что тоже занимат время. Хотя, при желании, можно заморочиться и сделать её графически отключаемой. Ну а во вторых, пока язык не знает что такое длина текста, я не знаю как вычислить длину полки...со всеми вытекающими. Но опять таки, если решить для себя, что маркировка будет состоять из максимум двух символов...то можно подобрать более менее красивое соотношение).
Поэтому сейчас применяю стандартные позиционные выноски, в которых извлекаю свойство из объектов касающиеся маркировки. В этом честно говоря тоже есть куча минусов (1. долго и неэргономично, 2. если деталь расположена 5 раз на чертеже, то следует не запутаться с какого же объекта из них извлекать свойства). Пользуюсь правда всё равно, потому что автоматическая простановка позиций это хорошо.
А что у Вас не получается? Нарисовать две линии...выносную и полку выноски. Привязать к их общей точке текст. Задать привязку этой же точки через public параметры к примеру A и Б.
В ОнмувГрпиПоинт добавить запись:
if(1 == NMovingGrip){
A = cos(angleTwoPi(vecDirection, pntGrip1 - pntGrip0))*vecLen(pntGrip0 - pntGrip1);
B = sin(anglePi(vecDirection, pntGrip1 - pntGrip0))*vecLen(pntGrip0 - pntGrip1);
}
В СетГрипПоинт:
function SetGripPoint {
NGrip = 2;
pntGrip0 = pntOrigin;
pntGrip1 = pntOrigin+vecDirection*A+vecPlane*B;
};
B всё...