|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
|
Фига вытащил тему (почти ровно год валялась, а проблемы те же).
Уважаемые фантомасы, или гуру там всякие, снизойдите до вот этого: ко всему что есть (lisp) хотелось прибавить что-то типа: (command"wipeout" "f" "off") т.к. в одном хорошем блоке есть эта ложка дёгтя (иногда совсем не хотца думать и легче притвориться лаймером и попросить того, для кого это раз плюнуть) не знаю как эту строчку грамотно втиснуть. и ещё хотелось чтоб осталась возможность перебора точки вставки (динамический блок) тобиш Ctrl. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
> pyatifan : Маленький вопрос: используется ли toolpalettes? Если да, то можно повесить слой, масштаб и угол поворота напрямую на инструмент. А для wipeout можно и такое сделать, повесив его в автозагрузку:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Конструктор штампов Регистрация: 10.03.2004
г. Киев
Сообщений: 92
|
Вставляю блок с масштабом по Х=1, а по У масштаб определяется разницей от точки вставки до указ. точки макросом:
Код:
Где проблема? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Поскольку используется 'cal, думаю, что используется полный кад. Соответствтенно попробуй нечто типа:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Стоп, я не понял - мой код работает или нет?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Можно. Но код длинный. Сделано в ruCAD'e.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Строительство Регистрация: 03.09.2003
Нижний Новгород
Сообщений: 81
|
Цитата:
Просто в лиспе можно сделать - сначало вставка блока, а затем с помощью командой копировать сделать вставку вставленного блока , я сделал не большой лисп , но при копировании вставляется только один раз, а не несколько. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Длинный потому что вставлять сильно хочется, наблюдая за возможным результатом, а не неизвестно что и неизвестно куда. Да еще и с возможными разными масштабами. Некоторые блоки надо поворачивать после вставки; некоторые - нет. Общая идеология (по крайней мере примененная в ruCAD'e и следом за этой системой - и у меня) примерно такая:
- создается анонимный блок, в который засовывается "реальный" блок с переданными значениями масштабов по осям (правда, такой подход чреват проблемами при вставке таблиц и динамических блоков) - через команду _.change меняется точка вставки - если не был задан угол поворота, опять же командой _.change он меняется. Там масса проверок, "ловушек" ошибок и т.п. Также надо предусматривать вариант выхода как по правой кнопке, так и по Esc. Я б сам такое не написал в жизни. Идею слизал, немного переделал. Пока работает. Минусы подобного подхода: - проблемы при вставке таблиц, динамических блоков, размеров и т.п. примитивов, имеющих в себе ссылку на запись таблицы блоков. - команда _.change работает только в виде "сверху". При условии, что текущая система координат не совпадает с видом, иногда получается весело - при условии запуска в LT Extender надо отслеживать условие, что (vl-cmf) все равно возвращает nil, что требуется учитывать. - Изменить масштаб вставленного блока динамически нельзя. Плюсы: - Вставка всегда визуализируется. - Одна функция может вызываться из тысяч мест, меняя только пару-тройку параметров.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Строительство Регистрация: 03.09.2003
Нижний Новгород
Сообщений: 81
|
[quote="kpblc"]Длинный потому что вставлять сильно хочется, наблюдая за возможным результатом, а не неизвестно что и неизвестно куда. Да еще и с возможными разными масштабами. quote]
Нет, у меня все просто, блок один тот же и вставка без масштаба. У меня просто стандартный набор вставил и повернул. просто иногда надоедает каждый раз угол задавать!!!!! Просто вызвал прогу - вставил блок - показал угол, следующаая вставка без запроса угла и т.д. до бесконечности, пока не завершишь программу. Если снова запускаешь программу - при первой вставке сделать запрос угла. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Без проверок на работоспособность:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Конструктор штампов Регистрация: 10.03.2004
г. Киев
Сообщений: 92
|
> kpblc
Твой код не работает Код:
А такой код работает Код:
Получается, что без ввода угла не обойтись что с 'Cal, что с LISP. Можно немного упростить Код:
|
|||
|
||||
Строительство Регистрация: 03.09.2003
Нижний Новгород
Сообщений: 81
|
Цитата:
В место blockname - я написал имя автокадовского файла. А принцип работы проги должна заключатся: 1. вызвал прогу 2. вставляешь блок 3. делаешь поворот (визуально смотришт как и где поворачиваешь) 4. после поворота , прога не завершается 5. снова ставишь блок , но угол поворота уже сохраняется и т.д. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Стоп. Блок уже должен быть в файле. Если ты вставляешь внешний файл как блок, то тут по другому надо делать, ЯТД.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Строительство Регистрация: 03.09.2003
Нижний Новгород
Сообщений: 81
|
Цитата:
|
|||
|
||||
Регистрация: 02.09.2009
Сообщений: 82
|
Тогда следующий вопрос: Мне удалось сделать кнопку для вставки блока, он нормально вставляется, с нужным масштабом, только одна проблема- как сделать, чтобы команда могла завершаться после вставки блока, а то она отключается только при нажатии ESC Не оставляйте без ответа, коллеги
Последний раз редактировалось klinker, 12.10.2009 в 14:02. |
|||
|
||||
конструктор Регистрация: 31.01.2008
г. Новоалтайск
Сообщений: 102
|
подскажите, а если мне нужно вставить дин. блок ?
просто я сделал так ^C^C_.-insert c:/temp.dwg;\;; но тогда вставляется блок который содержит в себе мой дин. блок и динамичность появляется только при "взрыве" первого... |
|||
|
||||
архитектор Регистрация: 20.11.2007
Ростов-на-Дону
Сообщений: 539
|
я вот не понял зачем всё это....А не проще в Design Center найти этот файл с блоками выбрать во вкладке Blocks нужные блоки и правым кликом выбрать меню где нажать greate tool palette.
У вас тогда будет палитра где будут иконки блоков и их имя. Для этого в файле все блоки должны быть поименованы. |
|||