|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Выделение общих примитивов и другие полезные программы
construktor
moscow
Регистрация: 26.09.2007
Сообщений: 24
|
||
Просмотров: 5263
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
1. _.qselect
2. overkill из Express Tools 3. _break Оно?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
3.
3.1 Делаешь "хитрый" (с wipeout'ом) блок, а еще лучше "хитрый динамический блок" с возможность изменять его длинну. 3.2 Длинну блока устанавливаешь равной "пробелу" 3.3 _measure с опцией "Блок"
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
construktor Регистрация: 26.09.2007
moscow
Сообщений: 24
|
Все это конечно замечательно... Но ни один из пунктов не вышел
![]() Не все же инженеры Автокада и программисты :-) Можно чуть более подробно объяснять что и где. 1. В меню можно сделать выборку по различным параметрам, но я там не нашел выборку по общим отрезкам или дугам. Можно просто тупо выделить все отрезки... или какой либо слой (а общие как были общими так и остались). Это мне ни к чему. 2. Опять попытка завершилась ничем. Не понял что делает опция. Выбрал объекты где есть сопряжение двух рядомстоящих точек (0.01 мм) нажал ввод.. и.. ничего. Менял там параметр с цифрой (0.0000001), полагал что он и отвечал за точность при сопряжении, что бы, грубо говоря, 2 мм-овые фаски не соединялись в точку. Но нет. Без изменений. 3. Ну тут вообще темный лес. Что за "хитрый". Видимо, я должен догадаться ))) Не догадался! :-) wipeout ??? Да и даже пораздумав не понимаю как с помощью блока можно выполнить пункт 3 ![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
По п.3
См. пример. Если отключить слой "Рамка" то получишь требуемый результат, отрезок останется целым
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 14.11.2007 в 09:48. |
|||
![]() |
|
||||
construktor Регистрация: 26.09.2007
moscow
Сообщений: 24
|
3. Прочитал про хитрый блок. По - моему не годится он. Во-первых как я понял довольно трудная технология, в которой принимает участие ось z, что нежелательно. Дело в том, что после разрыва линии уже разорванную линию должно узреть оборудование и далеко не факт что оно обрабатывает слои с измененной Oz, а то что блоки не приемлет это точно. неужели нет никаких идей о том как это организовать в Лиспе? Просто другие функции у меня завязаны именно в нем. Вот и хочется объединив Лиспы получить требуемое
![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Хитрый блок содержит в себе объект WIPEOUT. И никаких смещений по 0z, только если сам не сделаешь. У меня почему-то ощущение, что ты не полностью прочитал тему.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
construktor Регистрация: 26.09.2007
moscow
Сообщений: 24
|
Господа! Ну что бы все про блоки, да про блоки. Для любой проблемы всегда есть больше чем один путь ее решения. Ваши бы знания, да в мои русла
![]() Вот накрихтел простейшую програмульку и надеюсь с вашей помощью ее серьезно доработать: (defun C:virov () (setq wag 20 ; шаг между выровами vir 5 ; длина вырова pt1 (getpoint "\n точка 1") pt2 (getpoint "\n точка 2") ang1 (/ (* (angle pt1 pt2) 180) pi) m1 (polar pt1 ang1 wag) m2 (polar m1 ang1 vir) m3 (polar m2 ang1 wag) m4 (polar m3 ang1 vir) m5 (polar m4 ang1 wag) m6 (polar m5 ang1 vir) kol (fix (/ (distance pt1 pt2) (+ wag vir))) ) (command "_trim" m1 "" m1 m2) ) Нерешенные проблемы: 1) функция trim требует выделения объекта, а указывая точку приходится включать привязку. 2) эта demo версия работает только при выборке двух точек отрезка над которым и работает программа. Хотелось бы что бы сам прорабатывал все отрезки, а еще лучше и другие примитивы не забывала. 3) и еще минус, что можно сделать два вырова на одном отрезке. В общем это шаблон того как примерно я хочу что бы программа выглядела. Надеюсь на вашу помощь! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
У команды _trim, по-моему, была опция _f (fence)
--- Добавлено: кстати, а почему вариант использования типа линии (для п.3) не рассматривается?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
проектировщик газопроводов Регистрация: 04.08.2005
Петербург
Сообщений: 327
|
BARS_1985: сдается мне, что ты вначале рисуешь осевую линию на которую сажаешь оборудование. И ты хочешь, чтобы осевая линия прерывалась под этим оборудованием.
Автоматизацию этого процесса, здесь разбирали - это и использование оборудования, как блоков с объектами WIPEOUT, или способ описанный Vova в его книге "AutoCAD. Язык макрокоманд и создание кнопок". |
|||
![]() |
|
||||
construktor Регистрация: 26.09.2007
moscow
Сообщений: 24
|
Не совсем так. Есть оборудование, которое выжигает лазером контур созданный в программе автокад. И вырубка всего контура приведет к выпадению материала с заготовки, поэтому появилась необходимость делать выровы в примитивах.
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Держи лиспик
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 16.11.2007 в 16:21. Причина: Новая версия |
|||
![]() |
|
||||
construktor Регистрация: 26.09.2007
moscow
Сообщений: 24
|
Спасибо !! Это уже похоже на то, что мне нужно :-)
Есть недочеты правда: 1. Программа делает разрвы на определенном шаге, а если остался отрезок с величиной меньшей чем шаг, то он автоматически удаляется. А такие отрезки есть всегда. 2. Хорошо бы что бы можно было выбрать набор примитивов, а не выбирать по одному. Спасибо! P.S.: Я бы рад сам доработать программу, благо знаю некоторые команды и на уровне начинающего умею их расписывать, но могли бы вы порекомендовать литературку где доходчивым языком объясняется LISP. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
А теперь?. Код в №15
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
construktor Регистрация: 26.09.2007
moscow
Сообщений: 24
|
Похоже =)
Еще хорошо бы пару условий соблюсти. 1) выровы устанавливаются на всех отрезках по центру, независимо от того какого расстояния отрезок (мин 10 мм) 2) Если на отрезке два и более вырова, то хорошо что бы они располагались равномерно. А так супер! Спасибо большое! Намерян купить книженцию по лиспу и сам дальше разбираться буду =) |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Симметрично, если я правильно понял
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 19.11.2007 в 16:53. Причина: Учтена длина отрезков |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
AutoМебель или другие программы к САD | Оксана | Прочее. Программное обеспечение | 3 | 19.01.2006 14:44 |
Выделение примитивов | Spake | AutoCAD | 1 | 29.08.2003 08:59 |