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

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

Мультилиния

Ответ
Поиск в этой теме
Непрочитано 26.09.2006, 12:08 #1
Мультилиния
armmen
 
творец
 
Ленинбург
Регистрация: 16.01.2006
Сообщений: 125

товарищи гуру и эксперты - можно ли поменять стиль мультилинии, если она уже используется в чертеже? стандартным образом - через Format-Multiline Style не делается =((( ну так чтоб - поменять содержание ее - и все в чертеже обновились?
__________________
"как хорошо, что наши организмы оснащены отверстием для клизмы"(с)
Просмотров: 2263
 
Непрочитано 26.09.2006, 13:18
#2
Zouss


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


врядли ибо нестандартным (LISP без V через entmod) тоже не получается - надо всю мультилинию перестраивать, что в принципе реализуемо, но геморно - подождем может кто из закромов чего выскребет
Zouss вне форума  
 
Автор темы   Непрочитано 26.09.2006, 13:54
#3
armmen

творец
 
Регистрация: 16.01.2006
Ленинбург
Сообщений: 125
<phrase 1=


эээх... ждем-с =))))
__________________
"как хорошо, что наши организмы оснащены отверстием для клизмы"(с)
armmen вне форума  
 
Непрочитано 04.10.2006, 17:27
#4
Zouss


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


во вложении черновой вариант проги - правда она не меняют стиль мультилинии, а перерисовывает ее с выбранным стилем, удаляя старую
отрисовка ведется на текущем слое с текущими же настройками, никаких проверок кроме типа выбираемого объекта не проводится.
также отсутствуют *error*, сохранение/восстановление настроек

желающие могут:
1 владеющие DCL модифицировать функцию getmlinestylename для выбора имени стиля в диалоге
2 владеющие VLISP модифицировать функцию getvertexlist для более элегантного получения списка вершин
3 располагающие временем модифицировать функцию makemline для изготовления мультилинии через entmake с копированием свойств оригинальной мультилинии
[ATTACH]1159968444.zip[/ATTACH]
Zouss вне форума  
 
Непрочитано 04.10.2006, 18:02
#5
Кулик Алексей aka kpblc
Moderator

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


У мультилинии один малоприятный момент: свойство "стиль" у нее read-only, то есть пробовать менять StyleName у ее vla-представления (либо 340 группу в entget) бесполезно. А координаты можно и так получить, к примеру:
Код:
[Выделить все]
(mapcar 'cdr (vl-remove-if-not '(LAMBDA(x) (= (car x)11)) (entget (entlast))))
можно по имени стиля попробовать до него добраться так:
Код:
[Выделить все]
(cdr (assoc 350 (member (cons 3 "STANDARD") (mapcar
'(LAMBDA(z) (cons (car z) (if (= (type (cdr z)) 'str) (strcase (cdr z)) (cdr z))))
 (vl-remove-if '(LAMBDA(x) (not (member (car x) '(3 350))))(entget (cdadr (member (cons 3 "ACAD_MLINESTYLE") (entget (NAMEDOBJDICT)))))
)))))
Потом составить entget представление мультилинии и сделать ее через (entmake), заменив 340-ю группу. Только эффективность будет практически нулевая, я думаю.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Мультилиния