| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Lisp изменение масштаба типов линий
Регистрация: 28.10.2019
Сообщений: 51
|
||
Просмотров: 3047
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,591
|
Так, может, как раз с аннотативностью и надо играться, а не с масштабом типа линии?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 28.10.2019
Сообщений: 51
|
Если бы работал один вообще бы не задумывался об этом.
Условно мои типы линий для 500 масштаба. Соответственно, для тысячного я бы задавал масштаб равное 2 и тому подобное. Но для других это не совсем практично. Дело в том, что в аннотативности допустим стоит масштаб 1:500 и включена функция масштабирования типа линии в модели листа. Сама линия на листе при этом стала в 2 раза меньше чем нужно. Можно отключить функцию масштабирования типа линии в модели листа, но тогда надо контролировать размер типа линии вручную. Изначально планировал делать только для себя, в итоге приходится подтягивать коллегам. Возникает гемор все адаптировать в человеческий варинат. Плюс типы линий из чертежа используются как мастеры для других. Лиспом подтягивается файлы мастер со всеми стилями, типами линий и блоками, а потом через другие лиспы отрисовывается все что нужно. Еще и мастер файл я использую при импорте из кредо. ----- добавлено через ~3 мин. ----- Цитата:
Как вариант думал выгрузить все типы линий из чертежа и потом вручную все увеличивать в 2 раза, но учитывая количество типов линий накопленных за 5 лет. В ручную выйдет весьма долгий процесс. Автоматизация был бы прекрасна. Но если такой возможности нет то сделаю вручную. Сами типы линий содержат в себе тексты и формы. Последний раз редактировалось Nikilin, 14.12.2022 в 08:02. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,591
|
Кажется, где-то на форуме был код, позволяющий выгружать типы линий в lin-файл.
Но вообще, конечно, странно - типов линий тьма, а файла с описаниями все еще нет
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 148
|
Я для саморазвития спрошу - может и мне когда пригодится.
Как понял из разъяснений автора - все штрихи, пропуски и масштабы форм в файле .lin увеличиваются в два раза. Чем это отличается от изменения масштаба линии в чертеже? Ведь если другие пользователи будут брать типы линий из мастера, то у них тоже отрисовка изменится? |
|||
![]() |
|
||||
Регистрация: 28.10.2019
Сообщений: 51
|
Цитата:
Цитата:
По факту если увеличить все в файле lin, от этого гемороя можно было бы просто избавится. Пример такой для объяснения: Есть тип линии допустим 2-5, в чертеже он забит как 1-2.5. Тоесть уменьшенный в 2 раза, чтобы был сразу на 500 масштаб. Но в модели все так же стоит 1к 1. Мы уменьшили чертеж в 2 раза посадили на координаты и добавили масштаб 1:500. По итогу получили на листе линию именно 1-2.5, а не 2-5. Если заранее не изменили масштаб типа линии на 2, или не сняли галочку с пункта масштабировать тип линии. В итоге у нас тип линии не по ГОСТ, так как линия уменьшена от необходимого. Контролировать каждый раз типы линий не хотелось бы, так как если тип линии был изначально настроен как 2-5, то при смене масштабов все происходило бы автоматом и пропадал гемор с контролированием масштаба типа линии. Возможно криво объяснил ситуацию, но решение пока вижу одно. Выгрузить типы линий и вручную все увеличить в 2 раза. Если опять же нету такой возможности сделать все через лисп. Последний раз редактировалось Nikilin, 14.12.2022 в 11:33. |
|||
![]() |
|
||||
Регистрация: 28.10.2019
Сообщений: 51
|
Если есть такое хотел бы ссылку. К сожалению не видел такого кода.
На форуме видел только такой lisp https://forum.dwg.ru/showthread.php?t=14359 |
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 148
|
Я все-таки не пойму, какая логика работы в Автокаде?
Вот как я понял - поправь если что не так.
Опять-таки повторюсь - напиши понятно для тех, кто не видел твои чертежи, как вы организуете работу в них. Тебе, как человеку постоянно работающему с ними, многое очевидно, а нам нет. Может файл-образец прикрепишь Последний раз редактировалось name02, 15.12.2022 в 06:15. |
|||
![]() |
|
|||||
Регистрация: 28.10.2019
Сообщений: 51
|
Да
Цитата:
Цитата:
Цитата:
Линии и блоки были настроены только на 500 масштаб. Встали задачи, редкие, но все же появились, автоматизировать работу с 200 и 1000 масштабом. Из за чего начались поиски путей решения. Цитата:
Сделал уже в ручную выгрузив через https://forum.dwg.ru/showthread.php?t=14359 и подправив вручную, что сломалось. Потом в 2 раза увеличил все заменив через замену и фильтры Мастер файл выбрасывать на форум не стал из за задачи. Нету смысла скидывать конкретный файл, так как задача стояла именно в изменение масштаба описания типов линий. Просто в процессе внесения конкретики для чего я это делаю, внес большую смуту. В настоящий момент задача решена вручную. Блоки сделал аннотативными, линии привел в формат 1:1000. Осталось решить задачу с мультилиниями. Их придется масштабировать все же в ручную. Думаю прикрутить кнопку, но не могу найти код для lisp, чтобы задать масштаб мультилинии. Как вариант можно пойти другим путем и отказаться от аннатотивности. Прикрутить кнопки с изменением масштабов. Допустим сделать кнопку изменения масштаба на 1:1000 который должен изменять следующие вещи в чертеже: PSLTSCALE=0 1.Выбрать текст текстового стиля допустим "G2" и задать для всего текста высоту "2" 2.Выбрать все отрезки, полилиний и 3Д-полилиний и задать масштаб 1. 3.Выбрать все мультилинии и задать масштаб 1. Для М 1:500 PSLTSCALE=0 1.Выбрать текст текстового стиля допустим "G2" и задать для всего текста высоту "1" 2.Выбрать все отрезки, полилиний и 3Д-полилиний и задать масштаб 0.5. 3.Выбрать все мультилинии и задать масштаб 0.5. Для М 1:200 PSLTSCALE=0 1.Выбрать текст текстового стиля допустим "G2" и задать для всего текста высоту "0.4" 2.Выбрать все отрезки, полилиний и 3Д-полилиний и задать масштаб 0.2. 3.Выбрать все мультилинии и задать масштаб 0.2. В идеале добавить допник (Если команда была запущена до окончания начертания): 4. Установить масштаб типа линии для последующего начертания. 5. Установить масштаб вставляемых блоков. (С блоками думаю такое не возможно, тут скорей все же подойдет аннотативность блоков) 6. Установить масштаб мультилиний. И добавить фильтр слоев Для команд 1,2,3. так изменяемые объекты лежат на слоях с одинаковым прификсом. ----- добавлено через ~10 мин. ----- Сколько раз сталкиваюсь со странными задачами и понимаю, что надо изучать Autolisp. Последний раз редактировалось Nikilin, 16.12.2022 в 05:59. |
||||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 148
|
Примерно понятно.
Может масштабировать линии с помощью изменения глобального масштаба линий - меню Формат-Типы линий-поле Глобальный масштаб (это переменная LTSCALE)? Так же посмотри справку на переменную MSLTSCALE. Все-таки мне кажется, что редактировать lin-файл для таких целей это через чур. |
|||
![]() |
|
||||
Регистрация: 28.10.2019
Сообщений: 51
|
Цитата:
Проще использовать предложенной вами Лисп и масштабировать типы линий. За переменную MSLTSCALE спасибо. Забыл про нее совсем. Предыдущая установленная версия автокада ее не воспринимала. Забыл про это фунцию. Тогда отпадает необходимость масштабировать типы линий и блоки. Вопрос остался с мультилиниями. Разработчик как я понял аннототивность к ним вообще не сделал. Не могу найти переменную отвечающую за масштаб у мультилинии для лиспа. |
|||
![]() |
|
||||
Регистрация: 28.10.2019
Сообщений: 51
|
С новыми все понятно. Вот со старми, что делать. Допустим в чертеже 20 мультилиний еще и на разных слоях. Можно про какуюнибудь и забыть случайно. Для уменьшения ошибки оператора хочу сделать лисп.
Выбрать все мультилинии в чертеже не проблема. А вот какую переменную менять для изменения масштаба найти не могу. (vla-put-??????? ----- добавлено через ~10 мин. ----- Все отбой тревоги. Я нашел. vla-put-MlineScale |
|||
![]() |
|
||||
Регистрация: 20.04.2011
Сообщений: 351
|
Спрошу тут. Есть набор примитивов с разными типами линий и разными значениями Linetype Scale. Есть ли способ выполнить масштабирование этого набора, чтобы значение Linetype Scale для каждого примитива менялось в соответствии с новым масштабным коэффициентом?
|
|||
![]() |
|
||||
Регистрация: 28.10.2019
Сообщений: 51
|
Как вариант
Код:
Цитата:
1 Запросить масштабный коэффициент 2 считать у объекта масштаб типа линии 3 изменить масштаб (Считаный масштаб*на коэффициент введённый ранее) Все это применяется для всех объектов в чертеже. Если все верно понял то может на форуме кто то и поможет. Лично для меня такое сильно сложно. |
|||
![]() |
|
||||
Регистрация: 28.10.2019
Сообщений: 51
|
|
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Аннотативность типов линий? | 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 |