|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
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,404
|
> 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,404
|
> 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. Сам я лиспом занялся меньше года назад именно из-за того, что приобрели на нашу организацию лицензии, а акадовский доп.софт часто работать отказывался. Но никто им и не занимался всерьез. Вот и пришлось "на старости лет" ![]() ![]() Цитата:
|
|||
![]() |