|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
02.12.2007, 12:45 | #1 | |
Повторение выполнения макрокоманды по циклу. КАК?
Инженер-электрик
Калининград
Регистрация: 13.10.2007
Сообщений: 151
|
||
Просмотров: 6129
|
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Или рисовать линию, потом запоминать ее (setq A (ssget last/если так можно/)), снова рисовать и туда же запоминать (к выделению A), ну а потом уже все это выделение в группу, подскажите пожалуйста как это можно сделать
|
|||
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
как вариант использовать в макросе * в начале макроса для его зацикливания, а внутри макроса, делать join как опция в команде pline, для создания новой вершины и каждый раз новую плинию прописывать в группу, единственное придется if-ом на дизеле разделить процессы когда создается первая вершина и последующие, а вообще задача по-моему достаточно сложная луче на лиспе или вба писать.
|
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Sleekka, да, вроде начинаю тоже доходить, что надо будеть LISP подключать
только вот мне надо знать еще некоторые функции..., да и вообще как с ними правильно работать... Сейчас держу в руках книгу Н.Полещука "AutoCAD разработка приложений настройка и адаптация" - очень помогает ковырятся в уже написанных лиспах, но вот на свои я еще не подрос, не хватает знаний. Если кто знает как можно это сделать, можт обрадуете... любой помощю или советом. Вот скажите как написать, что бы: (если просто в AutoCADе нарисовать линию, потом, к примеру, нажать _move, то ведь не обязательно показывать снова ту линию - что бы ее перетащить, достаточно написать _Last, потом указать точку 1 и точку 2 - куда надо, вот!), нарисовав линию добавить ее в набор (функция ssget), после, если необходимо снова рисовать линию, но уже к существующему набору добавлять и ее. Но ведь для этого надо рисовать это как бы "новой" линией, т.е. не обыкновенной. Результат должен быть: Я рисую положим 5 разных полилиний, в это время все они у меня оказываются в наборе, потом я рисую обыкновенной линией, ну подправил что нибудь и еще как нибудь, а потом опять "новой" и AutoCAD спрашивает а к какому набору вас добавлять? В принципе набор может быть один, потому как если набор заканчивается, т.е. это мы с клавиатуры или еще как-то его закончили, AutoCAD весь уже сформированный набор складывает в группу, и нам останется только лишь написать название группы, при этом исходе наш набор может обнулиться и можно снова набирать новую группу... Последний раз редактировалось Kostinok, 02.12.2007 в 16:01. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Если бы я был уверен, что все верно понял... А так, в качестве идеи: можно сделать несколько отдельных команд.
1-я запоминает состояние файла. Дальше рисуется все что угодно. 2-я с точки, которую запомнила 1-я, добавляет все нарисованные примитивы в новую группу. Есть тут, конечно, пара тонкостей, в частности, то, что примитивы должны находиться в одном пространстве (листа или модели), не входить в блок / внешнюю ссылку; практически гарантированно возникнет вопрос с удалением примитивов "до точки 1".
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Может почерпнешь какие идеи здесь?
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=22733Nt http://www.caduser.ru/cgi-bin/f1/board.cgi?t=33159gI
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Кулик Алексей aka kpblc, т.е. имеется ввиду: 1 програмаа запоминает все текущие настройки: слои, тип линий и т.п. И самое Главное какие на чертеже есть ПРИМИТИВЫ и где они расположены, т.е. "сфотографировать" чертеж, а 2-я программа сравнивает конечный результат рисования и как бы "вычисляет разность" м/у чем было и что стало...
Ну а потом эти программы наверняка можно объеденить...! Идея классная, но вот как? в принципе, я сейчас наверно смогу запомнить все настройки AutoCADа в текущем чертеже - это, как я понимаю, делается "записыванием" системных переменных, наверно даже можно записать все координаты примитивов, но только вот это я уже смутно представляю как это делается... А вот про вторую программу вообще не понял!(как она должна "разность" вычеслять, по каким правилам?) Можт было бы легче рисовать в отдельном слое, а потом, когда рисование окончилось, выделить(тож конечно в по средствам LISPа) все примитивы слоя и запихнуть в группу - а так можно?
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ Последний раз редактировалось Kostinok, 03.12.2007 в 13:33. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Первая "программа":
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Alaspher, спасибо, все работает, надо только что бы можно было группу создавать самому, имеется ввиду название, если бы это был макрос, то в коде:
вместо "_.group" "_c" "*" "" selset "" писалось бы: _-Group;_Create;\;;!select - вроде так, и тогда AutoCAD просил бы назвать группу - можно ли это сделать здесь? И еще возможен ли вообще такой лисп: я запускаю лисп, он мне пишет: Выберите группу, а потом, после выбора, в текстовом окне прописывает сколько эта группа пересекла блоков: блок под именем 1: 20 2: 35 Дверь: 2 Лампа: 5, и.т.д? Можно ли вообще этого добиться?
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Код:
Последний раз редактировалось Alaspher, 04.12.2007 в 14:49. Причина: обнаружены и исправлены существенные недочёты |
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Alaspher, спасибо!!! Подсказка про объектные методы это конечно хорошо, для начала мнеб просто лиспу научиться, переменные всякие важные позапоминать, а потом и к методам перейти. Так что если не затруднит, как поднаизучаюсь - буду обращаться за подсказками
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как именно настроить параметры нового чертежа? | Макс_Северянин | AutoCAD | 31 | 01.09.2010 10:16 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |