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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Вопрос про особенности DXF 62 (цвет)

Вопрос про особенности DXF 62 (цвет)

Ответ
Поиск в этой теме
Непрочитано 06.05.2025, 11:30 #1
Вопрос про особенности DXF 62 (цвет)
Nikilin
 
Регистрация: 28.10.2019
Сообщений: 57

Приветствую знатоков форума, необходима подсказка в поиске ответов.
Долгое время использую вариацию кода для смены свойств объектов по окончанию выполнения функций в таком формате:
(if e
(entmod (append (entget e) (list (cons 8 PER1) (cons 43 PER2) (cons 6 PER3) (cons 62 PER4))))
)
Сегодня обнаружил странные прикол с цветом в части DXF группы 62. Возможно не точно объясню проблемы, скорее по этому и не могу найти на нее ответ.
Если в свойствах стоит какой то параметр цвета в виде ACI то проблем с выполнением данной части нет, в случае если в строке свойств задано RGB значение то изменение цвета не срабатывает.

Я обычно работаю с цветом по слою, по этому не замечал такой прикол до.
Просмотров: 785
 
Непрочитано 06.05.2025, 11:36
#2
Кулик Алексей aka kpblc
Moderator

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


https://github.com/kpblc2000/KpblcLi...ecolor-set.lsp
+
https://github.com/kpblc2000/KpblcLi...gb-to-true.lsp

Оно?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.05.2025, 12:15
#3
Nikilin


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Оно?
По ссылкам у меня почему то отображается код со сломанной кодировкой, но не важно, скорее у меня что то не так отображает
Если я верно понял ваш код из RGB подбирает код ACI и на оборот. Поправьте если я не прав.
Функции классные.
Но проблема именно в том, что часть кода в виде (cons 62 3) не меняет цвет на зеленый, если у пользователя в свойствах установлен другой цвет в виде RGB кода. Если у пользователя стоит цвет в виде ACI к примеру 30, то цвет спокойно меняется на 3.

Речь именно про панель СВОЙСТВА и палитру СВОЙСТВА родные для автокад. Если в них установлено значение RGB все ломается.

Последний раз редактировалось Nikilin, 06.05.2025 в 12:23.
Nikilin вне форума  
 
Непрочитано 06.05.2025, 12:24
1 | #4
Кулик Алексей aka kpblc
Moderator

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


Кодировка - тупо скачать реп или функции, сохраняя в ANSI-кодировке.
Менять надо не 62 группу, а 420
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.05.2025, 13:02
#5
Nikilin


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Кодировка - тупо скачать реп или функции, сохраняя в ANSI-кодировке.
Менять надо не 62 группу, а 420
Понял. С 420 группой для меня просто сложнее работать, но направление понял.
Nikilin вне форума  
 
Автор темы   Непрочитано 06.05.2025, 17:53
#6
Nikilin


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Менять надо не 62 группу, а 420
Нет все же не понял. Менять 420 кодом цвет конечно классно, но по слою как назначить я не понял. В мануалах нету данной информации, подразумеваю, что ни как.
Проблема остается та же. Часть моих команд использовали ID цвета, часть были по слою. Если я сейчас переделаю с 62 группы на 420, то как назначить объекту цвет по слою. Если сделать какой нибудь условный if и проветь цвет в свойствах, то опять к примитиву не применяется цвет 256 (по слою), если пользователь установил RGB цвет в палитре.

Потыкав и подумав, наверное проще у объекта перед назначением цвета стереть 420 код и назначить ему 62 группу. Пока не пробовал, но в теории должно работать.
В итоге не придумал ничего лучшего чем сделать так:
(if e
(progn
(if (assoc 420 (entget e))
(entmod (vl-remove (assoc 420 (entget e)) (entget e))))
(entmod (append (entget e) (list (cons 8 PER1) (cons 43 PER2) (cons 6 PER3) (cons 62 PER4))))
)
)
На сколько хорошее решение не знаю.

Последний раз редактировалось Nikilin, 06.05.2025 в 18:22.
Nikilin вне форума  
 
Непрочитано 06.05.2025, 19:06
#7
Кулик Алексей aka kpblc
Moderator

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


На старте ты говорил о цвете объекта, назначаемом принудительно. Теперь ты говоришь о цвете "По слою". Ты уж определись.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.05.2025, 19:26
#8
Nikilin


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
На старте ты говорил о цвете объекта, назначаемом принудительно. Теперь ты говоришь о цвете "По слою". Ты уж определись.
Каюсь. Хотелки доносить я не умею. Просто максимально хотел не трогать тот фрагмент. Он максимально прост и универсален. Даже пару раз думал назначать цвет vla методом, но все же так проще.
Про то, что некоторые элементы нужно делать по слою я когда писал тему не подумал.
Переделал код на 420 группу и только тогда столкнулся с первой проблемой, а как сделать объект по слою.
От сюда и изменения пошли.


Признаюсь не знал, что если объекту назначена 420 dxf группа, то в 62 не изменить цвет. Благодаря вашим ответам и потыкав разные примитивы, нашел взаимосвязь.

Последний раз редактировалось Nikilin, 06.05.2025 в 19:41.
Nikilin вне форума  
 
Непрочитано 06.05.2025, 21:37
#9
Кулик Алексей aka kpblc
Moderator

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


Offtop: Ну, меня как бы один ))
А если надо назначить по слою - то либо через vla, либо тупо для 62 группы ставить 256, ЕМНИП.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Вопрос про особенности DXF 62 (цвет)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Линии электрических соединений Shoorup Программирование 23 07.02.2015 15:13
Как поменять цвет атрибутов уже вставленных в чертёж блоков? МишаИнженер Программирование 5 09.10.2012 20:55
Цвет текста отметки уровня не меняется СПДС sadko7 Прочее. Программное обеспечение 7 25.04.2012 07:06
Autolisp. Вернуть изначальный цвет объекту Zaghim LISP 3 13.01.2011 16:13
Крепление раковины - вопрос к строителям Pilot Прочее. Архитектура и строительство 21 06.12.2004 10:35