| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > AutoLisp. Текст и линия

AutoLisp. Текст и линия

Ответ
Поиск в этой теме
Непрочитано 03.03.2004, 22:48 #1
AutoLisp. Текст и линия
boban
 
Сообщений: n/a

AutoLisp. Текст и линия
Не подскажете как связать текст и линию. Чтобы при изменение длины текста изменялась и длина линии, чтобы длина линии соответствовала длине текста и при этом они составляли единое целое. Заранее спасибо.
Просмотров: 4399
 
Непрочитано 03.03.2004, 23:12
#2
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Подчеркнутый или надчеркнутый текст? Если так, то простейший способ %%uваш текст%%u

Если тут нечто более сложное, то нужно средствами Лиспа прицепить к тексту реактор, который вызовет функцию, которая в свою очередь изменит параметры опять таки заранее известной линии. Уфф-ф-ф...

Надо заметить, что если в чертеже реактор можно сохранить (как бы, закрепитьего за примитивами), то функция этого реактора в чертеже не хранится. Поэтому для успешного редактирования на другой машине, функция должна присутствовать, иначе вылетит сообщение об ошибке. Таким образом, гарантировать "целостность" можно только в пределах одного компутера, либо прилагать к файлу чертежа еще и файлик с программой.
vk вне форума  
 
Непрочитано 04.03.2004, 01:23
#3
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Если нужен "продвинутый" вариант, т. е. в вашем файле при изменении длинны линии всегда менялся какой нибудь текст и наоборот, действительно нужно создавать "постоянный" реактор. При переносе чертежа на другой компьютер, придеться позаботиться о переносе и файла с реагирующими функциями. Делать такую, не скажу что совсем сложную, но однако и непростую вещь для "одноразового" пользования смысла не имеет. (в подтверждение VK)

Предлагаю для начала более простую функцию, недавно написанную для одного товарища с этого форума. Щелкаете на линии (или на любом примитиве), потом на тексте. Текст принимает значение длинны линии (или кривой). Если надо без труда "изготовим" обратную функцию.
Код:
[Выделить все]
(defun c:lex (/ cur_ent vla_obj len cur_text vla_text) 
  (setvar "cmdecho" 0) 
  (vl-load-com) 
  (while T 
    (setq cur_ent (car(entsel "Select Line: "))) 
    (terpri) 
    (setq vla_obj (vlax-ename->vla-object cur_ent)) 
      (setq len (vlax-curve-getDistAtParam vla_obj 
(vlax-curve-getEndParam vla_obj))) 
    (setq cur_text (car(entsel "Select Text: "))) 
    (terpri) 
      (setq vla_text (vlax-ename->vla-object cur_text)) 
  (vla-put-TextString vla_text (rtos len 2 2)) 
    );end while 
  (princ) 
  )
А размеры чем не подходят или все в разных местах?
{Smirnoff} вне форума  
 
Непрочитано 04.03.2004, 21:01
#4
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


>Fantomas
Привязать к тексту асоциированный размер и в его стиле отрубить все ненужные элементы, так? Интересная мысль!
vk вне форума  
 
Непрочитано 05.03.2004, 12:49
#5
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Вроде так.
{Smirnoff} вне форума  
 
Непрочитано 05.03.2004, 14:54
#6
ilka_t


 
Регистрация: 20.01.2004
Москва
Сообщений: 154


Подскажите а как привязать к туксту аасоциативный размер :?:

Или имелось в виду, что текст размера поставить в нужное место с убиранием не нужных линий?
ilka_t вне форума  
 
Непрочитано 05.03.2004, 16:58
#7
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Да такова была идея. Создать такой размерный стиль. Правда еще не пробовал.
{Smirnoff} вне форума  
 
Непрочитано 05.03.2004, 18:25
#8
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Создать стиль - не проблема, проблема найти у текста второую точку, за которую можно прицепиться :roll:
vk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > AutoLisp. Текст и линия

Размещение рекламы