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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как прописать lisp в атрибуте блока?

Как прописать lisp в атрибуте блока?

Ответ
Поиск в этой теме
Непрочитано 13.08.2014, 15:15 #1
Как прописать lisp в атрибуте блока?
ity
 
Регистрация: 02.03.2009
Сообщений: 75

Зашедшим на мой вопрос доброго дня.
Не кидайте камни, уже создавал тему, но ответа и конкретики так и не получил.
Вопрос в следующем
Надо прописать Lisp в атрибуте блока, как это сделать?
Еще вопрос, есть ли лисп копирования и вставки текста, именно такой я хочу прописать в блок.
Просмотров: 4814
 
Непрочитано 13.08.2014, 15:42
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Цитата:
Сообщение от ity Посмотреть сообщение
Надо прописать Lisp в атрибуте блока, как это сделать?
Никак. Смирись.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.08.2014, 15:46
#3
ity


 
Регистрация: 02.03.2009
Сообщений: 75


Простите за назойливость, может можно решить задачу другим способом?
Надо вставить текст в атрибут блока.
Такое возможно?
ity вне форума  
 
Непрочитано 13.08.2014, 15:49
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Цитата:
Сообщение от ity Посмотреть сообщение
Такое возможно?
Возможно. А в чем трудность?
P.S. Минут 10 у меня пока что есть...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.08.2014, 15:51
#5
ity


 
Регистрация: 02.03.2009
Сообщений: 75


в этом и трудность. есть дин блок, надо при его вставке указывать текст который бы он прописал в атрибуте.
Такое возможно?
ity вне форума  
 
Автор темы   Непрочитано 13.08.2014, 15:55
#6
ity


 
Регистрация: 02.03.2009
Сообщений: 75


Что бы получалось примерно такое как во вложении.
Вложения
Тип файла: dwg
DWG 2013
Выноска.dwg (124.4 Кб, 1540 просмотров)
ity вне форума  
 
Непрочитано 13.08.2014, 16:11
#7
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от ity Посмотреть сообщение
текст который бы он прописал в атрибуте
Это называется "Значение атрибута".
Из Хелпа:
Присваивает атрибуту при вставке блока.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 13.08.2014, 16:14
#8
ity


 
Регистрация: 02.03.2009
Сообщений: 75


Вот я и хочу "Значение атрибута" не прописывать ручками а указать его на листе (кликнув мышкой на текст) и этот текст пропишется в "Значении атрибута".
Ручками не лень, но большие объемы и это очень ускорит работу
ity вне форума  
 
Непрочитано 13.08.2014, 16:22
#9
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Не совсем понял алгоритм...
Я как-то привык давать значение атрибута при вставке блока, обычно программно. Тогда можно менять значения, например нумерацию
Ну или после вставки.
Программно можно выбрать тысячи (или несколько) блоков и занести за секунды туда в атрибут "этот текст"
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 13.08.2014, 16:30
#10
ity


 
Регистрация: 02.03.2009
Сообщений: 75


Задумка такая
Я вставляю блок и когда он спрашивает значение атрибута я указываю на текст и тогда он прописывает указанный текст в атрибуте блока
ity вне форума  
 
Непрочитано 13.08.2014, 16:51
#11
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от ity Посмотреть сообщение
Я вставляю блок и когда он спрашивает значение атрибута я указываю на текст и тогда он прописывает указанный текст в атрибуте блока
См.выше п.9 тебе уже написано.
"давать значение атрибута при вставке блока, обычно программно. "
Остаётся заменить задание атрибута в командной строке, на указание текста мышкой.
Тут только возникают нюансы... а вдруг промажешь и укажешь не тот текст?
Тогда нужна команда для замены введённого атрибута, на указанный текст.
Программно сложностей особенно нет. А вот в твоём алгоритме, читай постановке задачи, проМблемки есть.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 13.08.2014, 16:55
#12
ity


 
Регистрация: 02.03.2009
Сообщений: 75


Нет не промахнусь. а как "заменить задание атрибута в командной строке, на указание текста мышкой"?
ity вне форума  
 
Непрочитано 13.08.2014, 17:16
#13
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095


Обязательно "копипастить" текст именно в процессе вставки блока? Если сделать это сразу после нее, задача существенно упрощается, даже есть готовое решение. Также есть готовое решение, чтобы копировать содержимое из сущ. текстового объекта в буфер обмена до вставки блока, а потом вставлять в ком. строку штатными средствами. Корректное прерывание команды на "копипаст", и потом корректное ее продолжение - задача, наверное, решаемая, но уже посложнее.
kp+ вне форума  
 
Автор темы   Непрочитано 13.08.2014, 17:22
#14
ity


 
Регистрация: 02.03.2009
Сообщений: 75


Можно и сразу после вставки.
Подскажи как это решить проще?
ity вне форума  
 
Непрочитано 13.08.2014, 17:33
#15
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095


Код:
[Выделить все]
 (defun c:kp_copy_text (/ a b b1 b_owner n) 
  (setq a (vlax-ename->vla-object (car (nentsel "Исходный текст:\n"))))
  (if (not (vlax-property-available-p a 'textstring)) (kp_copy_text))
  (setq n (vla-get-textstring a))

  (while
   (not (and
    (setq b (nentsel (strcat "Куда скопировать: (" n  ") \n")))
    (setq b1 (vlax-ename->vla-object (car b)))
    (vlax-property-available-p b1 'textstring)
   ))
  )
  
  (vla-put-textstring b1 n)

  (setq b_owner (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) (last b)))
  (if b_owner (vl-cmdf "regen"))
   
  (kp_copy_text)

)
kp+ вне форума  
 
Непрочитано 13.08.2014, 17:36
#16
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,048


Цитата:
Сообщение от kp+ Посмотреть сообщение
Корректное прерывание команды на "копипаст", и потом корректное ее продолжение - задача, наверное, решаемая, но уже посложнее.
В NetApi это достаточно несложно реализуется через JIG. Это есть скорее всего в ObjectARX, а вот в lisp - не видел подобного
Сергей812 вне форума  
 
Автор темы   Непрочитано 13.08.2014, 17:49
#17
ity


 
Регистрация: 02.03.2009
Сообщений: 75


что то не работает ( Не видит куда вставлять (((
ity вне форума  
 
Непрочитано 13.08.2014, 17:52
#18
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095


значения атрибутов не должны быть пустыми, там должны быть какие-то "заменители" типа *, . или еще чего-нибудь. Т.е. в описании атрибута надо заполнить чем-нибудь поле "значение".
kp+ вне форума  
 
Непрочитано 13.08.2014, 17:52
#19
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


По рабоче-крестьянски...
Добавил в блок vyn_block контролируемый атрибут PER (переменная часть).
Тексты стоят на чертеже, черт. на котором проверял во вложении
Вызов команды
(vyn_ins)
Код:
[Выделить все]
(defun vyn_ins ( / txt)
		   (command
		    "_.INSERT"
		    "vyn_block"
		    (getpoint
		      "\n Введите  точку вставки"
		    )
		    1
		    1
		    0
		    (setq txt (cdr (assoc 1 (entget (car (entsel "Выберите текст"))))))
		    ""
		   )
  (princ)
)
Естественно без проверок на ошибку указания и Esc...
Не знаю насколько это ускоряет выполнение чертежа, ведь тексты надо тоже писать на чертеж.
Но у каждого свои тараканы
Вложения
Тип файла: dwg
DWG 2007
Чертеж1.dwg (82.4 Кб, 1229 просмотров)
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 13.08.2014, 17:59
#20
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095


Цитата:
Сообщение от Alan Посмотреть сообщение
Не знаю насколько это ускоряет выполнение чертежа, ведь тексты надо тоже писать на чертеж.
Судя по всему, они уже написаны заранее.
kp+ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как прописать lisp в атрибуте блока?

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Высотная отметка в атрибуте динамического блока Isuma Динамические блоки 12 24.04.2014 13:16
Autocad Architecture 2011: Как в атрибуте блока тега двери создать вычисляемое значение DOOROBJECTS:NUMBERSUFFIX+DOOROBJECTS:NUMBER (Д01)? сям Вертикальные решения на базе AutoCAD 6 13.03.2014 09:57
Проблема с базовой точкой блока и вхождением блока в DXF nogaems Программирование 5 29.08.2013 15:46
Как с помощью lisp получить список всех состояний видимости динамического блока crosandr LISP 4 11.04.2012 22:33
свойство динамичного блока в его атрибуте Pave1 AutoCAD 14 29.12.2011 20:31