|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Исключением, пожалуй являются случаи "визуального" масштабирования специальных "украшательских" блоков, каких-нибудь деревьев на фасадах. Так и там масштаб знать не надо, надо просто растянуть изображение мышкой. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Как раз по поводу визуального украшения - когда вставляешь блок командными методами - на курсоре "висит" его изображние - сделать нечто подобное в лиспе можно либо, через API express tools (но они не факт что установлнны), либо через grread + куча обработки, отслеживаний и пр. - то есть гемор для "красоты" получается приличный (хотя можно 1 раз с силами собратся и написать).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Должно учитываться, что блок может иметь атрибуты самых разных видов. И то, что разные Автокады имеют особенности, связанные с INSUNIT и с аннотативностью. Должен быть цикличный запрос: Точка вставки <Выход>: с завершение работы пустым вводом. ESC при этом блокируется. Такую универсальную функцию мы с Alaspher-ом делали лет 10 в разных вариантах. Приходилось применять разные хитрые методы и бороться с "особенностями" каждой новой версии AutoCAD. Подробно история описана в "САПР на базе AutoCAD....". Да и на форуме где-то долго обсуждали. Но все найденные решения оказались непригодными для работы в 3D - а там тоже так блоки надо вставлять, например высотных отметок. Да ещё в нужной ПСК и плоскости. В результате пришлось сделать прерывание цикла вставки по ESC, а функция стала очень простой. Запрос: Точка вставки или ESC для выхода: Иначе никакой возможности нет. |
|||
![]() |
|
||||
Регистрация: 22.01.2010
Сообщений: 311
|
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Кроме того, команда всегда работает в текущей ПСК, что значительно упрощает дело. |
|||
![]() |
|
||||
Регистрация: 22.01.2010
Сообщений: 311
|
Цитата:
(while (vl-cmdf "_insert" blockname pause 1 1 pause) ; в данном случае с запросом угла поворота ) По ESC цикл прервется. Дешево и сердито ![]() |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 22.01.2010
Сообщений: 311
|
Цитата:
Код:
Какие условия не выполнены ? Последний раз редактировалось swkx, 20.01.2011 в 14:06. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Если бы всего лишь в цикл завернуть, разве бы бились столько... Сделай реальную программу для реального блока. Хотя бы какой-нибудь значок наподобие отметки вставлять. Да чтобы масштабировалось автоматически и правильно. В модели, в листе. |
|||
![]() |
|
||||
Регистрация: 22.01.2010
Сообщений: 311
|
Как-то так:
Код:
В таком варианте выдается стандартное приглашение: «Точка вставки или [Базовая точка/Масштаб/X/Y/Z/ПОворот]:» Можно и его заменить на своё, но кто его вообще читает после миллиона использований ![]() После вставки блока вывалится окно для заполнения атрибутов. Что ещё нужно проектировщику для полного счастья ? |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
А теперь где-то вне программы установи (setvar "ATTREQ" 1) и погоняй. И делай всё не так, "как надо", а как может сделать пользователь. Например, не укажи точку. И блок возьми из другого файла, в котором были не такие, как в этом INSUNITS. И задавай поворот не 45, а в виде аргумента. Если задан - то поворот не запрашивается, а если NIL - запрашивается угол поворота, разумеется с понятным приглашением. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
Начальные углы и пр. тоже естественно иметь возможность задать.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 22.01.2010
Сообщений: 311
|
ShaggyDoc,
Разумеется, приведённый код подразумевает только "правильное" поведение пользователя. Рассматривалась же принципиальная возможность с помощью (vl-cmdf "_insert" ...) добиться нужного результата. Кстати, в вышеупомянутой книге в качестве одного из способов предлагается использовать вставку блока в невидимую зону экрана и затем манипуляции с _CHANGE. Я так и не понял, в чем преимущество этого метода ? Или он как раз и позволяет отследить все телодвижения пользователя ? Или этот метод был актуален только в ранних версиях Автокада и сейчас про него можно забыть ? Просвети, плиз. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
swkx, _.change работает только в плоскости, без вариантов. А вот _.insert позволяет вставить блок в любую точку, в том числе и лежащую на Z<>0.
Мне ShaggyDoc весьма доходчиво все в свое время объяснил ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Она использовалась, поскольку мне для моих задач практически никогда не требовалась вставка блока с Z<>0. А так-то по идее надо использовать именно _.-insert...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Опять про перепуск арматуры | AlfF1 | Железобетонные конструкции | 52 | 14.11.2017 08:55 |
Опять про сбор нагрузок (сильно не бить, поиск юзал) | Gevo | Конструкции зданий и сооружений | 39 | 21.04.2009 23:19 |
И опять про лицензирование | Aragorn | Разное | 39 | 27.02.2009 15:31 |
Опять про системные переменные | DEL | AutoCAD | 4 | 03.11.2006 11:12 |