|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
04.02.2017, 10:11 | #1 | |
Как получить координаты "поля" в многострочном тексте?
Регистрация: 30.03.2015
Сообщений: 152
|
||
Просмотров: 2518
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
См. в ActiveX вариант vla-fieldcode, а потом разбирай полученную строку.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 30.03.2015
Сообщений: 152
|
Алексей, вы наверное чуть не поняли или может я не так выразился...
, я хотел координаты полей vla-fieldcode возврашает: "1 Отходящие линии аварийного освещения здания ОПУ, ЗРУ-6кВ и ЗРУ-35кВ присоединить к предохранителям отходящих линий БАО.\\P2 Щитки рабочего и аварийного освещения зданий ОПУ, ЗРУ-6кВ и ЗРУ-35кВ поставляются заводом изготовителем комплектно со зданиями %<\\AcVar \\href \"..\\..\\..\\..\\Чертеж1.dwg##ссылка#0\">%\\P3 Кабели до щитков рабочего и аварийного освещения зданий учтены в компл. %<\\AcVar \\href \"H:\\film\\Самые остроумные афоризмы и цитаты.pdf##название#0\">%" "1 Отходящие линии аварийного освещения здания ОПУ, ЗРУ-6кВ и ЗРУ-35кВ присоединить к предохранителям отходящих линий БАО.\\P2 Щитки рабочего и аварийного освещения зданий ОПУ, ЗРУ-6кВ и ЗРУ-35кВ поставляются заводом изготовителем комплектно со зданиями %<\\AcVar \\href \"..\\..\\..\\..\\Чертеж1.dwg##ссылка#0\">%\\P3 Кабели до щитков рабочего и аварийного освещения зданий учтены в компл. %<\\AcVar \\href \"H:\\film\\Самые остроумные афоризмы и цитаты.pdf##название#0\">%" Спасибо, за команду (я получал аналогичное через словарь ACAD_FIELDLIST,но так проще через vla-fieldcode), но хочется координаты полей? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Ок, что такое "координаты полей" в твоем понимании? И зачем оно надо?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
prajdziswet, спасибо, кэп. Для справки: у объекта TEXT / MTEXT есть такие понятия, как TextAlignmentPoint, InsertionPoint, AttachmentPoint. Добавляем понятие высоты, аннотативности и нормали.
Если я правильно понимаю, то тебе хочется сделать гиперссылку на поле. Подобное нереально и я бы делал по-другому. Например, после поля ставишь текст (Подробнее) и делаешь гиперссылку на нем.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 30.03.2015
Сообщений: 152
|
Алексей не совсем понял твое предложение(если можно поясни подробнее=> заранее благодарю )...
1) Да ты все понял правильно про гиперссылку, только не на него, а с него: т.е на листе чертежа бывает указание "см. лист такой-то"(в своем же комплекте), у пдф есть понятие области с которой ссылаются и куда(номер листа и масштаб) как я думал => создаю поле с относительным путем, пишу типа "смотри лист 5" => высчитываю координаты относительно печатаемой рамки, а куда оно будет уже в самом сообщении (или относительная ссылка или лист указан в самом этом поле; переводимой в пдф, самой рамки понятное дело есть) 2) насчет TextAlignmentPoint, InsertionPoint, AttachmentPoint понятие какое-то есть, точнее неоднократно встречал в жизни при черчении (когда изменяешь то же выравнивание в свойствах и текст уезжает) => но этот вопрос отложил на отладку, подумал замечу какой еще параметр в dxf (я так понимаю там указывается точка вставки?) 3) как я думал -- достаю текст до поля vla-fieldcode (спасибо что подсказал, я его получал из словаря , но как говорят "век живи-век учись и все ровно дурнем помрешь" ) -- создаю например entmake с темиже параметрами (как правило шрифт 2,5 и стиль гостовский, отступление, как правило, это человеческий фактор, но не важно создаем с теми же параметрами, но до поля) -- взрываем получаем кучу однострочного текста, наше поле или сверху или снизу (как правило, куда направление было понятно если там "типа столбцов" было может оказаться и слева и справа) -- вычисляем координаты этой строчки (по содержимому, ну и оно будет крайним (сверху - снизу - сбоку) -- вычисляем через активХ или textbox ширину строки => ну и в результате координаты этого поля -- возвращаем все наши извращения (убираем этот текст, что создавали и взрывали) ==> ну наверное понял почему мне не совсем нравится мой вариант "3" Последний раз редактировалось prajdziswet, 04.02.2017 в 23:30. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Я бы делал не так. В неграфический словарь (или вообще в сторонний файл) загнал бы исходную строку, а перед печатью ее бы поменял на вариант с гиперссылками. А потом обратно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 30.03.2015
Сообщений: 152
|
Спасибо огромное, может так и сделаю...
Пока такой вариант не очень устраивает: сам думал про сторонний файл, - но не устраивает что строку надо постоянно корректировать (если добавил тех. требования, например перед строкой(изменилось положение)), - во-вторых сторонний файл могут удалить (не только я работаю, другие сотрудники по отделу тоже...) А поле всегда перед глазами в чертеже (да и выделяется в многострочном тексте)+содержит информацию (куда, на какой лист, содержит описание "см. лист" или подобное)... Короче надо пробовать.... п.с а) хоть словарь ACAD_FIELDLIST, наверное придется использовать (чтобы выбирать только текст с полями, а не делать набор всех текстов и пробегать по этому набору) б) Алексей вроде как то я видел, что ты возвращал строку многострочного текста без символов форматирования? (т.е без "\P"(параграфа), без выделения жирным и т.д ==без символов форматирования, а просто текст == если знаешь, подскажи плиз... Огромное спасибо, благодарю... |
|||
|
||||
Цитата:
UnFormat String - This subfunction utilises the RegularExpression (RegExp) Object to remove all MText formatting codes from a supplied string kpblc-string-mtext-unformat А вот с этим поаккуратнее. Функции получения значения текста, поля, имени блока через vla-* некорректно возвращают строки, содержащие unicod символы. Подробнее см. здесь Можешь воспользоваться функциями из этой сборки bg:FieldCode BG:GET-TEXTSTRING bg:block-get-name Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ручки в многострочном тексте | Яблоко | AutoCAD | 12 | 20.02.2015 11:55 |
Lisp. Получить координаты точек 3D тела. | Golem-iq | LISP | 9 | 06.09.2013 13:38 |
Как в многострочном тексте при копировании с другого приложения заставить не менять стиль текста | 128500 | AutoCAD | 2 | 21.08.2012 12:21 |
Как получить координаты точек отображенных на четеже в виде таблици?? | nix-- | AutoCAD | 10 | 22.05.2009 13:41 |
Координаты области выделения | Тим Боль | Программирование | 6 | 04.11.2007 16:52 |