|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Даже не вникая в детали, я тупо включаю ручку по очереди в каждом mtext-e и запускаю функцию VVA
(C:FLDVIZ) из поста #7 темы http://dwg.ru/f/showthread.php?p=187684#post187684 Котрая включает ручку у связанного с полем объекта. А после этого я могу да хоть на луну. Это, что касается id, который я даже и не видел. Правда у VVA надо строчку (setq txt (car(nentsel "\nУкажите объект с полем"))) поменять. типа (setq txt txt-i) Поскольку я в переменную txt буду сразу имя кидать и ручки включать тогда mtext-ам не надо. А переменную txt-i я уж сделаю. Последний раз редактировалось Supermax, 13.12.2007 в 18:31. |
||||
![]() |
|
||||
Добыл я из функции VVA все данные, так что и ручки включать не надо и так все в шоколаде выходит, а если вообще целевым назначением все делать, так просто будет как в эмиратах у эмира.
VVA, что молчишь? Я ж вижу, шныряешь туда, сюда, видать уже чего-то ваяешь? ![]() Я не зря тогда ту тему про поля затеял. Теперь вот пригодилось. Низкий тебе поклон за это. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Блин. Я говорю не про состояние поля, а про то, что тебе надо по новой получить указатели на красные дуги. Ты мой код запускал?
Возможно, я чего-то не понимаю, но, думаю, что сегодня мне это простительно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
А именно красные и есть "связываемые". Если бы все было просто, все было бы уже давно решено.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
![]() Я запускаю макрос VVA, он включает ручки белым дугам, за ручки белые дуги подергал, формула отреагировала, а каким боком ты связал формулу с красными? Если бы ты в mtext вставил второе поле и в нем указал красную дугу, я бы понял. У меня в mtext-е два поля, одно указывает на один объект, другое на другой. Поскольку оба поля в одном mtext-e, то получается, что один объект связан с другим. Ладно, набирайся сил. ![]() Последний раз редактировалось Supermax, 14.12.2007 в 04:41. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
К примеру: Длина первой полилинии (которая, кстати, не попала в набор копирования) должна быть равной длине дуги. Полный механизм лично я придумать не смог.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Вот, наконец-то все стало на свои места. Красные дуги - побоку, на них поле ставить надо а на белые уже стоит, значит будем с белыми связывать. Добавляем еще одно поле в mtext с указанием в нем на полилинию и ее свойство... да любое, без разницы, но сразу за полем пишем буковками Vertex 1. У тебя получается четыре аргумента. Первый - указатель на объект "дуга" и ее свойство Length. Второй - указатель на элемент "полилиния" с любым установленным свойством. Третий - текст с именем свойства, которое надо уже выколупывать из найденного объекта лиспом, и четвертое - номер узла полилинии.
|
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Выложил здесь еще одну функцию, создающую поля в объекте. Но ценность ее в том, что там описываютя код поля и его значение. По поводу "чего молчишь ..." так 2 варианта
1. окончательно пока еще все не утряслось ни у меня ни у вас. 2. конец года, понимаешь.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
VVA, молоток!
Надо из всего этого многообразия склеить следующее: Есть mtext, в котором последовательно с разделителями пробел стоит метка $Kpblc (имя_функции аргумент1 аргумент2 аргумент_n) Надо эту строку прочесть и передать в соответствующую переменную. Поскольку макрос, который читает эту строку и запускает функции к самим функциям не имеет никакого отношения, то предлагаю переменную назвать также как и метку, только без доллара, но возможно с каким-нибудь префиксом. Чтобы тот, кто будет сочинять очередную функцию точно знал через какую переменную ему передадут параметры аргументов. Параметры предлагаю делать сразу списком, а не строкой. В список вставлять простой текст строками, значение полей сразу превращать в -1 код объекта и название свойства строкой. Получаются вполне читабельные данные для простого усвоения функцией. Я посмотрю на новую прогу и попробую вычленить из строки mtexta первое поле, второе поле и так далее. |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Имя последнего отрисованного примитива
(value 0 (entget(entlast))) Если num-dxf код поля, ent - список dxf кодов, возвращаемый entget
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
В AddObjectField строку
(vl-position (value 0 EntData) '("MTEXT" "ATTRIB" "ATTDEF")) заменить на (vl-position (cdr(assoc 0 EntData)) '("MTEXT" "ATTRIB" "ATTDEF")) то от нее можно отказаться
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Есть, в посте №6
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сквозная нумерация чертежей | Alxd | Прочее. Архитектура и строительство | 26 | 19.06.2024 09:01 |
Нумерация в МТекст | Bull | AutoCAD | 36 | 01.12.2022 14:24 |
Нумерация листов в AutoCad | Sergk | AutoCAD | 21 | 11.03.2022 05:21 |
Автоматическая нумерация текстов | dorofei | Программирование | 8 | 18.01.2007 09:31 |
Нумерация страниц в файлах | Димас | AutoCAD | 1 | 22.12.2005 10:31 |