|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
28.11.2017, 16:58 | #1 | |
Закрашивание редактируемого текста
Регистрация: 12.09.2016
Сообщений: 33
|
||
Просмотров: 3642
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Откуда код не скажу, поскольку не знаю. Но что код либо кусок другой программы, либо другого автора - почти гарантирую (признаки расписывать не стану, уж извини).
Если известно, какая строка кода что делает - кто мешает их менять местами до достижения нужного результата? P.S. Лично я предпочитаю с текстами командными методами не работать - уж больно много там слабопредсказуемого. ИМХО лучше написать свой "типа редактор" и в нем все обрабатывать.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.02.2007
Москва
Сообщений: 611
|
|
|||
|
||||
Регистрация: 12.09.2016
Сообщений: 33
|
Эти переменные из другой моей же программы, которую использовал как шаблон. Создавать редактор это лишняя работа. Нужна простая функция, которая работает в цикле, чтоб можно было редактировать большое колличество отдельных текстов. Это применяется в изменении исходного dwg файла, для создания на его основе исполнительной схемы.
Перепишу код, чтоб не портили читаемость лишние переменные (defun C:colm(/PropertyList) (while (setq PropertyList (entget (car (entsel)))) (setq PropertyList (subst (cons 62 5) (assoc 62 PropertyList) PropertyList)) (entmod PropertyList) (vl-cmdf "_.textedit" "\\" "\\" ) ) ) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Offtop: Вот даж не знаю - потратить 15 минут на нарисование более-менее внятного кода или так оставить...
alik3001, команду воткни до модификации примитива и не парься
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 12.09.2016
Сообщений: 33
|
Да, это помогло. Не могу понять почему такая разница в выполнии, между ними?(
Осталось сделать проверку, на текст с цветом "по слою", так как не работает все в этом случае. Надо будет точечную пару записывать в список (62. 1). Но как ее записать не знаю во внутрь. Через (cons (cons 62.1) PropertyList) не работает entmod. Неужели через list придется создавать список новый с (62. 1) в середине. И к нему применять (subst) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Не складывается:
То есть хотя бы минимальное понимание должно быть. И тут же: Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
alik3001,
Что-то в этом есть, да и как-то руки почесались) Код:
Последний раз редактировалось koMon, 18.01.2018 в 17:54. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
koMon, к сожалению, забыл про локализацию. И про видимость переменных
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Кулик Алексей aka kpblc,
ну я думаю видимость переменных проблема не большая) локализацию можно доработать, если это конечно кому-то нужно?!) если у тебя русский автокад, то скажи что у тебя в ключе <HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\RXX.X\ACAD-XXXX:XXX\Language>? Последний раз редактировалось koMon, 30.11.2017 в 17:24. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Я вообще-то про вызов команд, а не про приглашения, если что
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
так и я про это)
так что в реестре? |
||||
|
||||
Регистрация: 12.09.2016
Сообщений: 33
|
Я хотел сказать, что почему
;(vl-cmdf "_.textedit" "\\" "\\" "\\") и ;(command-s "_.textedit") по разному выполняются, ведь принцип один и тот же. Я попробовал через ActiveX сделать, в Helpe поковырялся. Вот что получилось. ;----------------------------- (defun C:colm(/ PropertyList) (vl-load-com) (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (while (setq PropertyList (entget (car (entsel)))) (setq T1 (cdr(assoc 62 PropertyList))) (if (numberp T1) (setq PropertyList (subst (cons 62 5) (assoc 62 PropertyList) PropertyList)) ) (if (not (numberp T1)) (progn (setq zo (vlax-ename->vla-object (cdr (car PropertyList)))) (vla-put-Color zo 6) (setq e1 (vlax-vla-object->ename zo)) (setq PropertyList (entget e1)) (setq PropertyList (subst (cons 62 5) (assoc 62 PropertyList) PropertyList)) )) (entmod PropertyList) ;(vl-cmdf "_.textedit" "\\" "\\" "\\") (command-s "_.textedit") ) ) ;---------------------------------- На досуге посмотрю код и ссылку))) |
|||
|
||||
ладно, считаю что Russian... Обновил макрос...
|
||||
|
||||
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
koMon, замени 89 строку:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программное создание размерных стилей | Кулик Алексей aka kpblc | Программирование | 89 | 08.04.2013 12:59 |
LISP. Выравнивание текста по двум точкам. | Krieger | Готовые программы | 10 | 24.12.2011 16:02 |
Вопрос. Способы написания текста в AutoCADe. | макс геодезист | AutoCAD | 16 | 14.07.2011 21:36 |
как редактировать contents в свойствах текста? как привязать размер текста атрибута к размеру блока? | p-sm | AutoCAD | 3 | 13.08.2009 18:08 |
Курсор в конец редактируемого текста? | zlobandr | AutoCAD | 15 | 13.05.2008 16:41 |