|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
На заметку программистам
Thượng Tá Quân Đội Nhân Dân Việt Nam
44d32'44"С, 33d26'51"В
Регистрация: 14.03.2005
Сообщений: 13,372
|
||
Просмотров: 18041
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Заметка интересная, позвольте несколько встречных вопросов.
1. Вместо _-insert можно попробовать использовать ObjectDBX-доступ к библиотекам блоков и через vla-copyobjects копировать описания блоков (кстати, в CADWare я именно так и сделал). А собственно вставку выполнять старой незаменимой _change. 2. Возможно ли пройтись по всем блокам (я имею в виду библиотеки блоков) и установить блоки "unitless"? Если да, то, наверное, это будет более удобно. Правда, я не особо представляю себе, как быть с файлами-блоками... Добавлено: Ай-яй-яй, моя вина, не посмотрел. Файлы-то тоже можно сделать unitless ![]() ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Кроме того - впереди Brics. Какие там особенности встретятся - еще не знаю. Цитата:
Кроме того, моих-то библиотек уже меньше, чем пользовательских. А в них может быть что угодно. Берут библиотеки из всех версий, от фирм. Так что решение должно быть независимым от свойств файла с блоками. |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
У себя в своих блоках после всех эих непонятных перемасштабирований устанвил Insunits в безразмерный.
как-то писал код для перемасштабирования так вот смутно оттуда помню, для того, чтобы Автокад не перемасштабировал блок, нужно при Insunits=0 менять свойства XEffectiveScaleFactor XScaleFactor YEffectiveScaleFactor YScaleFactor ZEffectiveScaleFactor ZScaleFactor именно в таком порядке, сначала XEffectiveScaleFactor=1 потом XScaleFactor=1 потом XScaleFactor=нужное Код:
Последний раз редактировалось VVA, 19.09.2015 в 12:05. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
>VVA
Это не тот случай. Надо не свойства вставленного блока менять, а иметь визуально видимый, предварительно смасштабированный блок "на курсоре", в момент запроса точки вставки, но до ее указания. Чтобы юзер видел, что и куда он вставляет. При этом еще у блока, возможно, есть атрибуты. Возможно, его еще придется повернуть. И все это в любой ПСК, в том числе в 3D. Сделать это можно только через command. С объектными методами проблем нет - какой масштаб задали, тот и будет. Но для объекта надо сначала запросить и передать точку, и в момент запроса точки блок не виден. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Ээээ... Уважаемые, ShaggyDoc & VVA, я считаю вас своими учителями, но позвольте и ученику высказаться. Почему забыли про INSUNITSDEFSOURCE и INSUNITSDEFTARGET? Я, конечно, понимаю, что у меня вставка блока сейчас отработана только на 2D, но (обнаглею) посмотрите мой вариант вставки блока:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
Я пошел другим путем, на сервере есть база данных, в ней лежат списки для entmakex... Короче, если блока нет в файле, то я его быстренько создаю. Чтение идет из единой базы данных - это мне нравится. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Все-таки выходной посередине рабочей недели расхолаживает
![]() Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
>Кулик Алексей aka kpblc
Все эти функции вполне нормальные. Но есть "нюансы, значить". 1. 3D и произвольная ПСК обязательны для мультивставки. Проверь, это не больно. 2. Впреди BricsCAD. Что там и как с объектами - не исследовано. Судя по глюкам в самом Автокаде, там будет не лучше. 3. DBX хорош, если есть он. А если нет (Brics со товарищи), то стратегическая функция выпадает. Цитата:
В базе данных мы, например, храним координаты объектов в ГИС. Практически это немногим отличается от блоков. В БД можно, и это проще, просто запихать блоки. Это удобнее для централизации - хоть через Интернет вставляй. Но это уже другая тема, не про вставку... |
|||
![]() |
|
|||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Цитата:
![]() Суть в том, что для атрибутов в блоке, имеющих "немировую систему координат" она преобразовывается в текущую. Мой баг, не спорю. Но в остальном пока нормально работает. Может, я не полностью тестирование выполняю? Цитата:
Цитата:
![]() Цитата:
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
||||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Здесь мы начали обсуждать детали про "мультивставку", непонятные многим.
Приведу постановку задачи, может быть кто-то решит собственным методом. Итак, надо написать функцию с условным именем dwgru-multi-insert Вызов: Код:
block_name - имя блока, который уже определен x_scale - масштаб блока по Х, в том числе и отрицательный y_scale - масштаб блока по Y, в том числе и отрицательный и отличный от X block_angle - угол поворота блока в радианах или NIL для запроса угла msg_insert - приглашение для указания точки вставки msg_angle - приглашение для указания угла поворота Результат: примитив вставки или NIL при отказе. Что должна делать: 1. Предлагать в цикле, до пустого ввода, вставлять блок block_name. Блок должен при этом визуально висеть на курсоре, предварительно отмасштабированный до x_scale и y_scale. Пользователь должен видеть изображение блока до указания точки вставки (включая первую вставку) и приглашение msg_insert. Указывать точку вставки можно любым стандартным методом (мышкой, с клавиатуры, с использованием объектной привязки и прозрачных команд). 2. После указания точки вставки, если block_angle NIL (исправлено по замечанию Alaspher) выдается приглашение msg_angle для указания угла поворота вставленного блока (визуального или с клавиатуры, или любым стандартным методом) относительно точки вставки с углом 0 по умолчанию. В момент указания поворота прерывание работы должно блокироваться. Если block_angle NIL, угол поворота остается 0. 3.Примерный диалог: Command: Точка вставки <Хватит>: 100, 100, 100 Угол поворота <0>: 45 Точка вставки <Хватит>: 100, 1000, 100 Угол поворота <0>: 0 Точка вставки <Хватит>: Пустой ввод и выход Дополнительные обязательные требования: 4. Вставка должна корректно производиться в любой ПСК в плоскости XY. Координаты точки вставки при любом способе ввода должны быть в ПСК. 5. Блок может иметь атрибуты любых типов. При наличии редактируемых атрибутов после вставки должен выводиться стандартный диалог редактирования атрибутов. 6. Функция должна работать «чисто» — во время работы за курсором не должны тянуться «резиновые» нити, а при любом, в том числе аварийном завершении, не должны оставаться «трупы» временных объектов и прочий мусор. 7. Работа функции не должна завершаться нажатием клавиши <Esc> в качестве основного средства прерывания вставки (хотя возможно в качестве дополнения к штатному выходу при пустом вводе; при этом не должна прерываться основная программа); Все условия являются обязательными! Предлагаю желающим потренировать свои мозги. Наш старый вариант имеется в книге "САПР на базе AutoCAD - как это делается", глава 22, листинг 22.25. Он уже подвергался корректировке. А можно и не смотреть, чтобы сделать на свежую голову. "Забьем Мике баки?" (c) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Маленькое дополнение: при использовании отрицательных масштабов вставки блока поведение атрибутов, мягко говоря, вызывает серьезные нарекания. Желающим предлагаю попробовать
![]() P.S. Я проворачивал на 2005 и 2006, там ситуация не менялась. Может, в 2008 и решена эта проблема, не знаю. Но прога-то должна работать в любой версии от 2002, так? P.P.S. ShaggyDoc, тут (ИМХО, конечно) будет явно не одна функция ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
Код:
По поводу теток, я вообще им не доверяю работу с базой данных - все делается за кадром - если создается блок для дальнейшей работы, значит отправляем его в базу... |
||||
![]() |
|
|||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
А вот насчет "я вообще им не доверяю работу с базой данных" как раз самое опасное - привязка к конкретному "я". Все мы люди живые, а некоторые даже и смертные. Нет человека - нет технологии. Впрочем, это побочная тема, не собираюсь переубеждать. Это не мое собачье дело. Цитата:
Цитата:
Цитата:
|
||||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Еще раз прочитал тему, в связи с этим вопрос: так проблема во вставке имеющегося описания блока или во вставке описания блока из другого файла, с, возможно, "нестандартными" insunits? Чего-то я торможу...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
|
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
ShaggyDoc
Надо полагать, что лучше вас с Alaspher'ом все равно никто не напишет, поэтому, раз проблемы только с ПСК, то может имеет смысл сформулировать их поконкретнее. Тогда есть вероятность, что кто-нибудь подкинет решение или идею. Цитата:
|
|||
![]() |
|
||||
это только кличка Регистрация: 22.10.2006
Москва
Сообщений: 252
|
Цитата:
|
|||
![]() |
|
||||
Цитата:
Я несколько раз перечитал ваш первый пост, но так и не понял, что именно заставило вас использовать командную строку! Если вы столкнулись с тем, что автокад изменяет блок, во время его добавления к чертежу (не вставки), то здесь очень удобно использовать entmakex - автокад ничего не меняет. Если у вас сложности с системами координат (не верю) - поможем! Но скорее всего, я опять ничего не понял... |
||||
![]() |
|
||||
У меня еще один вопрос, в этой теме, несколько раз упоминался BricsCAD...
Вопрос ко всем, насколько актуально ориентироваться на него, при написании программ? Может уже давно пора тестировать свои программы, не только на всех версиях акада, но и на Брискаде? PS. Я никого не хочу провоцировать на полемику, но мне интересно ваше мнение. |
||||
![]() |
|
||||
Цитата:
|
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
В лиспе, который внутри брикса, отсутствуют как класс (по крайней мере в 7-ке) activex и vl-расширения. А также некоторые сильно привычные функции (я, например, тихо бился головой о клаву, узнав, что там нет function). Так, например, нет обработчика ошибок (и нажатие Esc при выборе точки выбьет софт в аут). Приличные проблемы при загрузке меню (по крайней мере пока) - сужу по методике установки BricsCAD BonusTools от Евгения на сабитовском форуме. Ну и так далее.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
|||||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Раз создал такую провокацию, отвечаю на накопившиеся вопросы:
Цитата:
Цитата:
Цитата:
Это видно в коде Кулик Алексей aka kpblc [9]. Цитата:
Цитата:
Цитата:
Однако программы писать пока достаточно сложно. Кулик Алексей aka kpblc в [29] верно отметил основные проблемы. И даже если появятся ActiveX и vl-расширения, то будут не такие, как в AutoCAD - имитация всегда хуже оригинала. И непременно будут "свои тараканы". Особенно при первоначальной реализации. Если ActiveX - то какая-же кроссплатформенность? Значит тоже какая-то имитация для Win-платформы. Или вообще самостоятельное направление. ActiveX появился в AutoCAD-14.01, но толку от этого не было - фактически продемонстрировали концептуальное направление на будущее. Простенькие программы с command для Brics писать вполне возможно, примерно на уровне сложности для AutoCAD-10. В AutoCAD ведь даже vl-cmdf сделала революцию - а всего-то стала возвращать значение, и это открыло большие возможности. |
||||||
![]() |
|
||||
>ShaggyDoc
Верно ли я понял? Необходима программа, которая будет интерактивно вставлять имеющийся в чертеже блок. При вставке необходимо отслеживать точку, угол, масштабы по осям. Программа должна работать в любой системе координат. Интерактивностью, вы называете динамическое изменение блока, на экране - при указании точки, угла, масштаба. Как пример, динамику необходимо реализовать на основе grread... |
||||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Интерактивность - не динамическое изменение блока (изменять не надо), а Цитата:
|
|||
![]() |
|
||||
проектировсчик Регистрация: 06.01.2006
Москва
Сообщений: 1,986
|
Господа глубокоуважаемые сэры, простите что не по существу въезжаю, но- редкий случай- так много и в одном месте...
Вот еще в 3 посте было: ==Кроме того - впереди Brics. Какие там особенности встретятся - еще не знаю. == А что-нибудь скажите, хоть ругнитесь, по поводу братьев китайцев и ZWCADа? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
> ShaggyDoc: постараюсь сегодня выложить свой вариант, соединенный в один лисп. Если это надо, конечно.
> Аshаs-ка : лично я просто ZWCad не качал и соответственно не тестировал. Если получится, попробую чего-нить в нем наваять ![]() > Profan : Ну зачем так-то уж??
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Ну не гони волну на берег, дай до дому добраться и качнуть
![]() P.S. Можно вообще отдельную тему создать по BricsCAD / ZWCad etc альтернативы и там потрепаться на отвлеченные темы ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Ну, если у людей есть желание поболтать "за жисть", как автор ветки не буду возражать. Мое мнение по поводу Brics, Zw и прочих отпрысков IntelliCAD. Программы развиваются и становятся интересными. Но судьба неясна. Конечно, многие их будут использовать. Но это уровень - скачал - посмотрел - понравилось - работаю. А это любительский уровень. Профессиональный будет, когда программу официально использует вся проектная организация. Для этого необходимо, чтобы программа официально распространялась и поддерживалась в России, чтобы ее можно было купить с соответствующим оформлением платежных документов. Желательно, чтобы она была в каком-нибудь списке сертифицированных или рекомендованных. Чтобы имела определенную рекламу и раскрутку. Вот недавний пример, о котором уже писал. При наезде на институт по поводу нелегального софта, можно было бы: а) Откатиться на легальный AutoCAD 14 на части машин и докупить на остальные BricsCAD. б) "Реструктуризировать" долг за пиратские версии и постепенно перейти на современный AutoCAD. в) Купиться на что-нибудь. Один из институтов пошел по варианту в). Потому, что было агрессивное предложение, подкрепленное "кое-чем", был и видимый результат - коробки, тома с документацией, обучение специалистами фирмы. Правда, в результате организация выпала из струи (кому нужен таксист с ЗАЗ), да и денег ушло чуть поменьше, чем с б). Но это директора не волнует. Зато у него в бухгалтерии все чисто. А как все это организовать с BricsCAD или ZwCAD - не представляю. Кроме того, в бесплатных (или "почти бесплатных") продуктах есть и опасность - они мало исследованы. Например, OpenOffice внедряется очень агрессивно. Вроде бы почти все в нем хорошо (ну, пусть удовлетворительно). Однако более внимательное исследование показало, что там есть такие ужасные ошибки, которые делают отдельные программы просто опасными. Бесплатность тоже оказывается фиктивной. Там, оказывается, и платные лицензии имеются. А стоимость потерь рабочего времени на переобучение и борьбу с глюками оказывается больше, чем затраты на приобретение MS Office (ползарплаты). Да и "открытые форматы" оказываются не такими уж открытыми. В общем, надо учитывать особенности арабского бизнеса - "залезть на верблюда - бесплатно, а вот слезть....". |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
> ShaggyDoc: вроде я ничего не упустил. Если чего лишнего понасовал в архив, прошу простить.
[ATTACH]1181284788.rar[/ATTACH]
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
> ShaggyDoc : Там некоторые лиспы лезут в реестр, значения там прописываются в загрузчике и при установке комплекса. Иногда СОМ-серверы вылезают. Ни установку (скрипт), ни dll-ку я не включал. Первое - глупо, второе - стыдно, там код иногда так криво написан, что диву даешься, как только работает
![]() P.S. Еще раз подчеркиваю, что огромное количество функций взято напрямую с ruCAD'a книжной версии. Максимум - переименование.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
1. Библиотека понравилась. Она вполне самостоятельная. Много твоих интересных функций, прослеживается общая идея. Обнаружил и твои исправления наших прототипов - да, были ошибки. 2. Универсальная вставка блока в целом хорошо проработана. Интересная и правильная идея. Хорошие усовершенствования "нашей" части мультивставки. Одна беда - для случая многократной визуальной вставки в 3D она не подходит принципиально. Причина - использование CHANGE. Попробуй нарисовать в 3D "кубик" отрезками, вставить в каждую вершину какой-нибудь блочишко, и поймешь. Не даст CHANGE изменить координаты в другую плоскость. Именно из-за этого и пришлось использовать vl-cmdf "_.INSERT" - она позволяет вставить блок в любую точку трехмерного пространства, а поворачивать - в плоскости текущей ПСК. В результате весь код сокращается до нескольких строк. vl-cmdf "_.INSERT просто обертывается в ru-error-catch. Теперь самым сложным является выяснение, нужна ли повторная вставка. Пока у меня есть 2 варианта. 1. Запрос в цикле после вставки типа "Повторить?". 2. Включение в запрос точки вставки возможности прерывания по ESC. "Точка вставки (ESC-прервать):". Реализуется легко, так как заход на повторную вставку вызвается просто через (vl-cmdf "") после (vl-cmdf "_.INSERT" ...) Этот вариант мне не нравится, так как рушит концепцию избавления от привычки выходить из помещения не через дверь, а через окно с криком "Спасите". Кроме того, (vl-cmdf "") вызывает и побочные эффекты, связанные с попыткой повтора команды. То есть теперь вопрос сводится к хитрой организации цикла. |
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Самое опасное на что наткнулся: 1. В OO Calc численные данные принимаются только с разделителем - запятой. Региональные настройки не влияют. Если между цифрами запятая вместо точки, то считается, что в ячейке строка. Изменить можно только, если применить для ячейки свойство языка и поставить, что в этой ячейке язык английский или японский. 2. Число, признанное строкой, в вычислениях считается нулем. То есть если в одной ячейке стоит 2,5 а в другой 2.5 то сумма будет 2.5 Excel в таких случаях дает ошибку и указывает ячейку с ошибкой. А Calc ошибок не выдает. Представим, что в таблице считаются деньги, и кое-где оператор поставил десятичные точки, а не запятые. Имеет он право на опечатку. В результате в Calc будут неверные результаты и их можно обнаружить только путем пересчета "на счетах". "Тетки", которые с этим столкнулись, перестают доверять компьютеру вообще, тем более, что миллионы суммируют. Но вот как интерпретирует эту «особенность» уважаемый журнал PC Magazie: Цитата:
Использование в качестве пресса для бумаг? Ну, и еще всякие мелочи, когда в справке одно написано, а на самом деле - наоборот. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
> ShaggyDoc: Ну я ж говорил, что, возможно, выполнял тестирование не в полном объеме (#13). Я попробовал представленный в #43 вариант, понял свою неправоту. Есть, конечно, некоторое количество идей, только они трудно (или вообще) нереализуемы... Особенно учитывая готовый вариант _-insert. Хотя стоп! Есть идея (правда, не проверял) - если (vl-cmdf "_.change") вернула t, то через (getvar "lastpoint") получить последнюю точку в WCS и назначить ее вставке блока. Проверять надо до получения угла поворота. На реализацию в течение выходных, боюсь, меня не хватит (по крайней мере сегодня точно). Сильно подозреваю, что придется еще за компанию и _.rotate привлекать, что совсем не гуд
![]() > Sleeka: Тема в принципе отдельная, если сильно интересно, давай тогда организуем новый топик, там поговорим. Потому что я, например, настолько глубоко OO не исследовал ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
В результате сделал так:
Код:
Вот эта функция теперь делает все, что надо (за исключением маленького нюанса) и стала компактной. |
|||
![]() |
|
||||
Регистрация: 13.10.2006
Ukraine
Сообщений: 211
|
Действительно, пора на форуме сделать отдельную ветку по тому же BricsCAD, ZwCAD и др.альтернативам акада. Но раз в этой теме затронули этот вопрос (и даже вскользь упомянули меня
![]() Цитата:
Приятно читать, что профи наконец-то понемногу начинают обращать внимание и на BricsCAD. Сам я лиспом занялся меньше года назад именно из-за того, что приобрели на нашу организацию лицензии, а акадовский доп.софт часто работать отказывался. Но никто им и не занимался всерьез. Вот и пришлось "на старости лет" ![]() ![]() Цитата:
|
|||
![]() |