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

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

Lisp изменение масштаба типов линий

Ответ
Поиск в этой теме
Непрочитано 14.12.2022, 06:27
Lisp изменение масштаба типов линий
Nikilin
 
Регистрация: 28.10.2019
Сообщений: 57

Здравствуйте товарищи.
Подскажите существует ли способ изменить масштаб типов линии в активном чертеже.
Суть задачи такая. Есть некий чертеж где около 80 типов линии сделанных в 2 раза меньше чем нужно.
Хочу увеличить их именно кодом, чтобы в свойствах, в масштабе типа линии осталась единица.
Грубо говоря изначально делал под конкретны масштаб, а теперь хочу перевести все дело в аннотативность.
Благодарю за помощь.
Просмотров: 5270
 
Непрочитано 28.09.2023, 18:25
#21
Ingpro


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


Цитата:
Сообщение от Nikilin Посмотреть сообщение
Выбирать можно любые объекты.
Спасибо большое, Nikilin. Выбирает любые объекты, но , если, к примеру, выбрать 3 объекта, то программа 3 раза запрашивает масштаб, причем неизвестно у какого из 3-х объектов будет меняться масштаб... А если объектов 10-30?
Это немного неудобно, если можно подправить лисп:
- выбрать объекты (они могут быть с разными исходными масштабами),
- указать один раз масштаб для всех выбранных объектов ...

Последний раз редактировалось Ingpro, 28.09.2023 в 18:39.
Ingpro вне форума  
 
Непрочитано 28.09.2023, 19:18
1 | #22
name02


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


Код:
[Выделить все]
 (defun c:foo (/ ss ms i sn obj)
 (vl-load-com)
 (if (setq ss (ssget))
	(progn
     (initget 7)
     (setq ms (getreal "\nEnter the linetype scale: "))
      (repeat (setq i (sslength ss))
       (setq sn (ssname ss (setq i (1- i))))
       (setq obj (vlax-ename->vla-object sn))
       (vla-put-LinetypeScale obj ms)
      )
	)
  )
  (princ)
)

Последний раз редактировалось name02, 29.09.2023 в 07:47.
name02 вне форума  
 
Непрочитано 29.09.2023, 13:49
#23
Ingpro


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


name02, спасибо! Теперь всем выбранным объектам можно задать одинаковый масштаб типа линий...
Ingpro вне форума  
 
Непрочитано 02.07.2024, 07:44
#24
gumel


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


Спрашивал в этой теме больше года назад. Задача была масштабировать объекты с индивидуальной корректировкой Linetypescale. Мне нужно, чтобы визуально объекты не отличались до и после масштабирования.

Цитата:
Сообщение от Nikilin Посмотреть сообщение
Тут все сложней. Как я понимаю логика должна быть такая:
1 Запросить масштабный коэффициент
2 считать у объекта масштаб типа линии
3 изменить масштаб (Считаный масштаб*на коэффициент введённый ранее)
Все это применяется для всех объектов в чертеже. Если все верно понял то может на форуме кто то и поможет. Лично для меня такое сильно сложно.

В общем код написал (методом copy/paste), но он некорректно работает:
Код:
[Выделить все]
 
(defun C:sscale() ; superscale
(setq ss (ssget)) ; набор объектов
(setq basepoint (getpoint "Базовая точка: ")) ; запрос базовой точки
(setq scalefactor (getreal "Коффициент масштабирования: [0.25/ 0.5/ 2.0/ 2.5/ ] <2.0> ")) (if (= scalefactor nil) (setq scalefactor 2))
(command "_scale" ss "" basepoint scalefactor) ; Масштабируем средствами АВТОКАДА
    (repeat (setq i (sslength ss)) ; далее цикл по выбранным объектам (с целью изменения LinetypeScale)
      (setq sn (ssname ss (setq i (1- i)))) 
      (setq obj (vlax-ename->vla-object sn))
	  (setq currentlts (vla-get-LinetypeScale obj)) ; текущий LinetypeScale 
	  (setq newlts (* currentlts scalefactor)) ; новый LinetypeScale
      (vla-put-LinetypeScale obj newlts) ; устанавливаем новый LinetypeScale
    )
)
upd. Прошу прощения, всё работает. Вроде ))
Миниатюры
Нажмите на изображение для увеличения
Название: для наглядности.png
Просмотров: 14
Размер:	15.0 Кб
ID:	263617  

Последний раз редактировалось gumel, 02.07.2024 в 08:38.
gumel вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp изменение масштаба типов линий

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аннотативность типов линий? Gedezuk5 AutoCAD 4 03.11.2023 03:10
AutoCAD 2018-2020. Разное отображение и печать стандартных типов линий с весом и без. Баг ли?? Александр К. AutoCAD 8 15.08.2019 06:30
Изменение масштаба типа линий в блоках. shartal Программирование 13 18.04.2014 08:19
Самопроизвольное изменение масштаба аннотаций видового экрана saa AutoCAD 6 27.09.2012 14:00
изменение толщины (веса) линий при печати, без редактирования чертежа lex0101 AutoCAD 6 01.12.2009 20:37