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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Выбор размеров с линейным масштабом х и назначение размеру цвета у

Выбор размеров с линейным масштабом х и назначение размеру цвета у

Ответ
Поиск в этой теме
Непрочитано 11.07.2025, 11:43 #1
Выбор размеров с линейным масштабом х и назначение размеру цвета у
Teftelia
 
Набережные Челны
Регистрация: 24.04.2010
Сообщений: 220

Прибег я к помощи deepseek, но что-то не работает(
Что просил:
Вот доработанная лисп-функция, которая не только выбирает размеры с линейным масштабом 1, но и изменяет их цвет на красный (цвет 1)

Код:
[Выделить все]
 (defun c:SelectAndColorDimScale1 (/ ss i ent dimscale count)
  ; Инициализация счетчика
  (setq count 0)
  
  ; Выбираем все размерные объекты в чертеже
  (if (setq all-dims (ssget "_X" '((0 . "DIMENSION"))))
    (progn
      ; Перебираем все найденные размеры
      (setq i 0)
      (repeat (sslength all-dims)
        (setq ent (ssname all-dims i))
        (setq dimscale (cdr (assoc 40 (entget ent))))
        
        ; Проверяем масштаб размерного стиля (группа 40)
        (if (equal dimscale 1.0 0.0001)
          (progn
            ; Изменяем цвет размера на красный (цвет 1)
            (setq ent-data (entget ent))
            (setq ent-data (subst (cons 62 1) (assoc 62 ent-data) ent-data))
            (entmod ent-data)
            (entupd ent)
            
            ; Увеличиваем счетчик
            (setq count (1+ count))
          )
        )
        
        (setq i (1+ i))
      )
      
      ; Выводим сообщение о результате
      (prompt (strcat "\nОбработано " (itoa count) " размеров с масштабом 1. Им назначен красный цвет."))
    )
    (prompt "\nВ чертеже нет размерных объектов.")
  )
  
  (princ)
)
В чертежах используется много масштабов, поэтому есть такой этап проверки когда все размеры разукрашиваю, чтобы визуально проверить не забыл ли где поменять масштабный коэффициент.
Масштаб меняется в свойствах.
__________________
ACAD2016sp1 + AdvanceSteel2016 + SPDS GraphiCS 10
Просмотров: 117
 
Непрочитано 11.07.2025, 11:45
#2
Кулик Алексей aka kpblc
Moderator

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


1. Ставь точку останова в VLIDE и пошагово проходи. По крайней мере увидишь место ошибки
2. Доверять ИИ в части лиспа - ну так себе затея.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.07.2025, 12:03
#3
Teftelia


 
Регистрация: 24.04.2010
Набережные Челны
Сообщений: 220


del

----- добавлено через ~28 мин. -----
Короче вобще мимо ии делает, либо не понимает.

По сути нужно выбрать все размеры в файле и параллельные и диаметральные.
Потом у этих размеров нужно посмотреть DIMLFAC
Если оно равно 1 то все примитивы такие перекрасить в красный
Если равно 1/2 то перекрасить в синий

Если кто может помочь, вроде не сложный код, сам я не смогу
__________________
ACAD2016sp1 + AdvanceSteel2016 + SPDS GraphiCS 10
Teftelia вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Выбор размеров с линейным масштабом х и назначение размеру цвета у



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли линию с вертикальным масштабом 1:500 преобразовать в такую линию с вертикальным масштабом 1:100 andriadi Прочее ПО от Autodesk 18 16.05.2023 10:06
Копирование динамического блока и присвоение ему нового цвета Boris0071 Динамические блоки 15 16.12.2016 15:03
Назначение одного цвета всей модели Russik AutoCAD 3 16.02.2015 13:45
Выбор цвета элементов блока Black Daiver AutoCAD 4 03.04.2014 09:43
программное создание размеров в dxf файле _Oleg_ Программирование 4 01.02.2011 16:36