|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Создание средней (осевой) линии или биссектрисы.
Котло- и реакторостроение
Барнаул
Регистрация: 25.02.2010
Сообщений: 824
|
||
Просмотров: 16498
|
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
lastloch, Я почему-то думал, что эти лиспы популярны и все ими пользуются. ))
Выкладываю. Есть еще один лист Axis_Den, от Дениса Флюстикова. Он делает осевые линии и для окружностей и для линий. Причем окружности можно выбрать рамкой и осевые отрисуются на всех окружностях разом, а линии так же приходится выделять по одной. Cirik Спасибо. Только непонятно, средняя линия отрисовывается определенной величины. В указанных мной лиспах, линия отрисовывается той же величины что основные линии. И ваш лисп работает только для параллельных линий, для линий идущих под углом друг к другу он не работает. Последний раз редактировалось Astartes, 05.05.2012 в 06:38. |
|||
![]() |
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
ciril, Добавил, ничего не поменялось.
Цитата:
Лисп bi_line отрисовывает все как нужно (и паралельные и под углом). Единственное что хотелось бы, это добавить возможность выбирать обе линии рамкой, как это сделано в вашем лиспе. Объединить, так сказать. |
|||
![]() |
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
ciril, Вот! Спасибо большое, теперь как надо.
Ну и раз уж так. Как сделать, чтобы полученная линия автоматом переходила на определенный слой. Как это сделать я знаю, нужно добавить такую строчку (vl-cmdf "_-LAYER" "_M" "Осевая" ""). Тогда у этой линии будет параметры присвоенные слою "Осевая". А хотелось бы чтобы линия получалась в текущем слое, цвет - по слою, тип линии - ACAD_ISO04W100, вес линии - 0,2мм. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
ciril, Еще пара вопросов.
Можно ли среднюю линию(дугу) между дугами сделать? Лиспы которые я выкладывал не могут этого сделать. Разве что Плтулс может, если дуги в полилинии конвертировать. Есть какая-то сложность с дугами, не знаете? Можно ли еще немного модернизировать лисп, чтобы после отрисовки средней линии, команда не прерывалась, а предлагала выбрать следующие две линии? Это конечно больше блажь, вызов предыдущей команды правым кликом сделать несложно, но всеже. )) Последний раз редактировалось Astartes, 11.05.2012 в 12:47. |
|||
![]() |
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
gomer, вообще, конечно, согласен, перестраховался, хотя с другой стороны... у меня при отсутствии в чертеже заданного типа линии отрезок создается не всегда (Civil2012)
![]() Astartes, вот так запрашивает продолжение и немного переписал код, так мне больше нравится ![]() Код:
![]() навскидку, вот так для сонаправленных, одинаково выпуклых дуг: Код:
Последний раз редактировалось ciril, 11.05.2012 в 14:02. |
|||
![]() |
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
ciril, Спасибо за проделанную работу.
Есть пара вопросов. По поводу первого лиспа. Там появляется запрос "продолжать или нет", причем он появляется даже перед тем как я выбрал первые линии. Без запроса не обойтись? Просто тогда пропадает смысл в модернизации лиспа. Попробую объяснить. Вот я вызвал лисп, выделил 2 линии, получил среднюю линию, команда закончилась. Правая кнопка мыши (повтор предыдущей команды у меня) и все по новой. Если воспользоваться модернизированным лиспом, то получается даже на один клик мышки больше. Вызов команды, ответ на запрос "продолжить или нет" (правый клик, получается лишний) выбор отрезков и опять ответ на запрос (правый клик, в данном случае на продолжение команды, а в первом случае на повтор команды, что в моем понимании одинаково). Я представлял себе так. Для примера команда оффсет(подобие). Там после создания подобия, команда не прервется и можно выбрать следующий объект для подобия, без лишних запросов. По поводу дуг, да вы правильно поняли, лисп работает хорошо. Теперь вопрос, можно ли его объеденить с лиспом для линий? Для чего мне это нужно. Я черчу трехмерку, потом снимаю проекции флат шотом, получается что то вроде (см. приложение). Потом мне нужно поставить осевые. Для этого я использую лисп, который прошу модернизировать. Странно, как вы прочитали мой комментарий, я же его еще не отправлял. )) Понял, спасибо еще раз за проделанную работу. Последний раз редактировалось Astartes, 12.05.2012 в 12:15. |
|||
![]() |
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
Олег (jr.), Спасибо. Только вот я наверное непониаю чегото. Ваш лисп работает точно также как обычный оффсет. Указываю величину смещения, и сторону для смещения. Смысл?
Если со сплайнами нельзя работать по такому же принципу как с линиями и дугами как в модернизированном bi_line.lsp и соответственно эту работу нельзя интегрировать туда же, то тогда не актуально. На всякий случай. Лисп работает с ошибкой. Команда: demo First curve: Second curve: _.offset Текущие настройки: Удалить исходные=Нет Слой=Источник OFFSETGAPTYPE=0 Укажите расстояние смещения или [Через/Удалить/Слой] <0.0000>: T Требуется численное значение расстояния, две точки или ключевое слово. ; ошибка: Функция прервана. (Мой комментарий: После этого работает как обычный оффсет. Зачем нужно было указывать первую кривую и вторую кривую, непонятно) Укажите расстояние смещения или [Через/Удалить/Слой] <0.0000>: 14 Выберите объект для смещения или [Выход/Отменить] <Выход>: Укажите точку, определяющую сторону смещения, или [Выход/Несколько/Отменить] <Выход>: Выберите объект для смещения или [Выход/Отменить] <Выход>: Плюс ко всему, сбиваются настроки привязок. Их потом заново приходится ставить. Последний раз редактировалось Astartes, 15.05.2012 в 10:18. |
|||
![]() |
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
блин! я решал похожую для полилиний - построение оси дороги по обочинам, которые полилинии, она не всегда корректно работает: не всегда правильно выбирает узлы, между которыми строится средняя точка. ошибка получается графически незначительной, поэтому тогда подошло
![]() |
|||
![]() |
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
ciril, Выше я выкладывал лисп от VVA, там у него тоже работа с полилиниями. Может пригодится. Если сплайн превратить в полилинию, то лисп работает корректно. Только вот полилиния с ее узлами не подходить для осевой линии. Линия отображается как сплошная. А вот узлы сплайна этому не помеха, линия отображается осевой.
|
|||
![]() |
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
ciril, Не понятно. Попробовал вне лиспа, просто plinegen =1, ничего не поменялось. Линия осталось сплошной. Да и конвертить сплайн в полилинию, лишнее действие, если конечно же со сплайном получится нормально.
ЗЫ: Тоже вот с полилиниями странность. Если конвертить спалайн в полилинию с помощью pl-join от VVA, то переменная не помогает. Линия остается сплошной. Если конвертить с помощью Total Purge, то тогда осевая линия отображается нормально. Интересно, раньше на замечал такой разницы. Последний раз редактировалось Astartes, 15.05.2012 в 13:45. |
|||
![]() |
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
системная переменная влияет на генерацию типа линий для вновь создаваемых полилиний. для уже созданных: выбери полилинию, на панели свойств (вызывается ctrl+1) найди одноименную строку (она в самом низу панели в разделе "разное") и включи ее. может придется регенерировать чертеж, не знаю
![]() ![]() приложил файл, какая линия правильней: синяя или красная? ![]() Последний раз редактировалось ciril, 15.05.2012 в 14:19. |
|||
![]() |
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
Ага, с регенерацией разобрался. Спасибо, не знал о такой фишке полилиний.
Касательно средней линии. Если была возможность среднюю линию ставил MPL. Если не конвертил сплайны в полилинию то ставил оффсетом. А вот только после вашей наколки, увидел что линии ставятся немного по разному. На самом деле мне без разницы. Большая точность не нужна, т.к. в основном это для монтажного чертежа. А там масштабы соответствующие. На рабочих чертежах все выполнено линиями и дугами, так что для рабочки вполне достаточно модернизированного вами лиспа. Синия линия я так понял получилась с помощью MPL. А красная с помощью чего? Потому что обычный оффсет дает вообще третий результат. )) |
|||
![]() |
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
Ну вот как-то так. Криво работает на сплайнах, которые разнонаправлены, не могу разобраться с весом узла, как он его пересчитывать.
Код:
Последний раз редактировалось ciril, 18.05.2012 в 10:28. |
|||
![]() |
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
Спасибо работает. Хоть иногда и странно (см. приложение). Слева средний сплайн построисля криво если выделять рамкой. А справа сплайн нормально построился если выделять по отдельности. Объекты то одни и теже.
Ну это так чисто к сведению. ![]() |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 13.11.2012 в 14:16. Причина: Ошибки |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Astartes, Я же честно написал
Так что соврал наполовину ![]() Исправил #43 Пробуй снова
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 14.11.2012 в 19:48. |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 07.12.2011
Уфа
Сообщений: 121
|
Подозреваю, что пристроили функцию, которая изменяет свойства средней линии с " тип линии ACAD_ISO..., толщина 0.2" на "послою, послою, цвет11"? Неужели нельзя все проще сделать?
Объясните, что происходит в этих строках? (or (entmake (list '(0 . "LINE") ---??? '(6 . "ACAD_ISO04W100") ---??? '(370 . 20) ---??? (cons 10 (trans (mapcar '* '(0.5 0.5 0.5) (mapcar '+ x05 x06)) 0 1)) (cons 11 (trans (mapcar '* '(0.5 0.5 0.5) (mapcar '+ x03 x04)) 0 1)))) |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
bboysyndrom,Если это про #48, то не правильно подозреваешь
Создается линия, остальное нужно было убрать либо закоментировать Исправил #48
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 07.12.2011
Уфа
Сообщений: 121
|
А как теперь сделать возможность выбора цвета при выполнении команды и свойством цвета ПоСлою по умолчанию?
(_bi_line2 --- Выберите цвет<ПоСлою"по умолчанию">) Нужно это при проектировании трубопроводов: Ду150 и более - осевая линия(цвет 11), Ду100 и менее - жирная основная линия (цвет красный). |
|||
![]() |
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 824
|
bboysyndrom, А слоями не пользуешся? Создай слой Ду150 дай ему цвет 11. Потом воспользуйся функцией изоляция слоя и проставляй осевые. Зачем это все прописывать в программе?
Хотя я может чегото и не понимаю. |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 07.12.2011
Уфа
Сообщений: 121
|
Слои использую как линии трубопроводов, по продукту (Гудрон, например). Цвета определяют стиль линий при печати (например, 11 - осевая, красный - жирная, белый - тонкая).
Кто способен, просьба настроить этот Lisp, чтобы - при запуске функции был запрос(меню): Выберите линии, дуги... или [Цвет(11, 5 и т.д.)/реЖим(удалять исходные, оставлять исходные)] <Цвет>: т.е. была возможность выбора цвета и режима. Помогите начинающему инженеру в создании этого лиспа, кто может =) |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание нового типа линий | Apelsinov | AutoCAD | 915 | 08.07.2022 12:36 |
Создание линии типа "_______текст_______ " с возможностью изменение текста | xabraxabra | AutoCAD | 18 | 03.10.2011 02:35 |
LISP Создание осевой линии для 3Dsolids | nem | LISP | 7 | 19.10.2010 12:42 |