Тема: NaviCAD - навигация в Автокаде
Цель программы - облегчить навигацию по чертежу, т.е. просмотр
и редактирование чертежей, особенно больших и сильно заполненных,
с множеством мелких деталей.
Сайт программы - http://navicad.narod.ru
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Приложения → Другие → NaviCAD - навигация в Автокаде
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Цель программы - облегчить навигацию по чертежу, т.е. просмотр
и редактирование чертежей, особенно больших и сильно заполненных,
с множеством мелких деталей.
Сайт программы - http://navicad.narod.ru
Буржуй делал для буржуев? В русских версиях не работает. Вместо пиктограмм на кнопках вопросительные знаки. В меню ссылки на несуществующие файлы .bmp.
Вдогонку: если не есть коммерческая тайна, можно было бы и lsp-файл приложить. vlx, конечно, здорово, но лично у меня постоянно проблемы с их выгрузкой и подгрузкой
> Владимир Громов
> kpblc
Спасибо за первые отклики.
Программу делал для себя. Посмотрел, что получилось, и решил выложить для общего пользования.
Программа писалась и тестировалась в среде англоязычного Автокада 2002. В русском Автокаде
не проверялась, т.к. его у меня нет.
Лисп-код выложить пока не готов. Выложенный файл прошу считать бета-версией. Программа
находится в работе, поэтому буду благодарен за Ваши отклики и предложения
по улучшению ее работы.
(всю дорогу ИМХО)
В первую очередь сделать поддержку локализованных версий следует - перед командами поставить "_.", перед опциями - "_".
Меню можно предоставлять только mnu-файлом, без компиляционных файлов. Иконки скомпилить в dll (если не предполагается их изменение). Учесть, что в 2005 и выше размеры иконок стали не 16х15, а 16х16 - в некоторых случаях может оказаться критично.
Перед первым вызовом любой функции NaviCAD руками приходится загружать vlx-приложение. ИМХО не гуд - проще сделать какую-то глобальную переменную, например, и производить обращение к ней. Тогда макрос будет нечто типа
^C^C(if (not *global-var*) (load "nvc"));eh
вместо
^C^Ceh
Имена функции ИМХО дать практически гарантированно уникальными - например, вместо eh сделать ssh-eh, ну и так далее. Вероятность, что у пользователя окажется функция с таким именем обратно пропорциональна длине и уникальности имени функции. Для ради примеру:
(defun kpblc-error-save-sysvar())
(defun kpblc-error-restore-sysvar())
(defun kpblc-draw-section-view())
Ну и так далее. Как видишь, имена сделаны, во-первых, максимально информативными, а во-вторых, вряд ли кто-нибудь будет у себя использовать именно такое имя. Психология, ёклмн - сначала идет мой ник. Кто захочет добровольно отдавать авторство кода?
Можно также учесть и возможности 2004 и выше и предоставлять xtp-файл экспорта toolpalette.
Можно сделать вообще lsp-файл установки программы (и ее деинсталляции), который, например, при запуске обращается к DOSLib-библиотеке (которая тоже должна быть загружена) и запрашивает путь к основному файлу. Полученный путь прописывается в путях поддержки.
P.S. Если не жалко, можно и код прислать в почту - может, чего и подскажу.
Сюда же. Уже по работе программ.
1. Создание vport выполняется на новом листе независимо от того, на какой вкладке я нахожусь. А если надо сделать на текущем?
2. Создаение vport выполняется а) по текущему положению экрана (не смотрится на лист, его ориентацию, печатаемую область, т.е. во весь экран и б) активное пространство - модель. В.Э. не заблокированы. ИМХО надо сделать либо диалог, либо как-то еще предоставлять шансы устанавливать опции.
3. Опять же, к vport: создание производится на слое NVС (а по требованиям СТП имя слоя может быть иным!), который, во-первых, печатается, а во-вторых, имеет вес линии Default. ИМХО сделать слой, во-первых, непечатаемым (можно тоже в окне установки), а во-вторых, вес линии для него сделать предопределенным. Если у меня lwdefault установлено в 2.11 мм, никто меня не переубедит, что это неправильно.
4. Нет отмены. Отмена выполняется по шагам внутри лиспа. ИМХО сделать метки начала и конца отмены. Как - уже не раз на форуме было.
Поддержку русского Автокада сделаю в ближайшее время.
Перед первым вызовом любой функции NaviCAD руками приходится загружать vlx-приложение.
Программу достаточно загрузить в чертеж один раз, и все ее функции будут доступны. А еще лучше поместить ссылку на нее в ACAD.LSP, и она будет загружаться автоматически.
Имена функций поменяю - согласен. Однако такие имена хороши в программе, а набирать с клавиатуры такое имя... Т.е., для вызова с клавиатуры, имхо, надо оставить короткие имена. При совпадении имен юзер всегда может изменить имя своей функции.
Инсталляция и деинсталляция - в планах, но не на ближайшее время.
Теперь по пунктам.
1.Создание двух ВЭ предполагается только на специальном рабочем лэйауте NVC. Он используется ТОЛЬКО для работы с программой.
2. Вопрос не совсем понятен. Для работы с программой с использованием режима Float Model Space надо предварительно отключить в Options показ печатаемой области, листа бумаги и т.п. (см. README файл). Созданные ВЭ на вкладке NVC блокировать нельзя, иначе в них нельзя будет выполнять команды ZOOM и PAN.
3. Примитивы слоя NVC (окна) присутствуют только на лэйауте NVC. Я не предполагал, что кто-то захочет печатать из него. Предопределенный вес линий ВЭ и непечатаемость слоя сделаю в будущей версии.
4. Не понятно, о какой отмене идет речь. Поясните.
> kpblc
В дополнение к ответу на 2-й вопрос. Конечно, лучше не убирать
вручную все эти галочки в Options > Display, а заложить это
в программу. Подумаю, как это сделать.
> SSH
по поводу отмены. Если выполнить, например, 2v, то для отмены одного (!) действия мне пришлось жать Undo 9 раз - не есть гуд ИМХО. Надо бы сделать одна функция - одна отмена. Сделать можно хоть так:
(command "_.undo" "_begin") ;Выполняемые действия (command "_.undo" "_end")
Хоть так (мне второй вариант больше нравится):
(if (not *kpblc-activedoc*) (setq *kpblc-activedoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (vla-StartUndoMark *kpblc-activedoc*) ;Выполняемые действия (vla-EndUndoMark *kpblc-activedoc*)
К работе программы вот еще: если (случайно, или, как это сделал я, специально) выполнить несколько раз 2v, то поведение программы, мягко говоря, неудовлетворительное. Не выдается никакого предупреждения, просто создаются lwpolyline в пространстве модели, плевать, в каком пространстве я нахожусь. Т.е. не производится проверка на наличие layout'a с жестко заданным именем (а он не переименовывался!) Проверку на наличие можно сделать, например, так:
(vlax-for item (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) ;; Здесь уже делать проверку на наличие имени. ;; Имя можно получить, например, так: ;; (vla-get-name item) )
Насчет блокировки - ИМХО сделать запрос на блокировку и блокировать в зависимости от ответа пользователя. Также сделать активным не пространство модели после создания ВЭ, а пространство листа.
И вот еще - лучше всего заставить все-таки работать программу в любом окружении. Если я чего-то настраиваю, то мне совсем неинтересно будет после выполнения невинных в общем-то операций получить непривычный вид када.
---
P.S. Все - ИМХО.
---
P.P.S. Народ, меня - один! Ко мне - на "ты".
> kpblc
Замечания учту, кроме:
Насчет блокировки - ИМХО сделать запрос на блокировку и блокировать в зависимости от ответа пользователя. Также сделать активным не пространство модели после создания ВЭ, а пространство листа.
Непонятно, зачем нужен запрос на блокировку ВЭ при создании
рабочей вкладки NVC. Это предполагает: а)ответ на вопрос и
б)последующую разблокировку (если был ответ "Да"). ИМХО,
это лишние операции, т.к. эта вкладка создается с единственной целью - для работы с программой в режиме FLOAT MODEL SPACE, и только.
лучше всего заставить все-таки работать программу в любом окружении. Если я чего-то настраиваю, то мне совсем неинтересно будет после выполнения невинных в общем-то операций получить непривычный вид када.
Я был бы рад, если бы можно было отключить показ печатаемой области, листа бумаги и т.п. только на вкладке NVC, не изменяя
вида остальных вкладок (лэйаутов). Но я не нашел такой возможности.
А иначе (без отключения всего, что мешает) этот режим использовать нельзя. В конце концов, у пользователя всегда есть выбор - либо работать с программой в обычном MODEL SPACE, либо смириться с некоторыми ограничениями режима PAPER SPACE, зато пользуясь лучшими возможностями управления размерами меньшего окна.
Ну вы профи даёте!!Чё гутарить?Работает класно,да ещё на халяву
По поводу пиктограмм. Мой ахиватор ZIP (консольный вариант) не взял длинные имена. При использовании TC все распаковалось нормально. На кнопках отобразились все пиктограммы. Желательно учесть возможность работы в локализованной версии.
На сайте программы http://navicad.narod.ru выложено обновление - версия 2.01b (beta).
Программа теперь будет работать в русском Автокаде (и других локализованных версиях).
Просьба к участникам форума: сообщите о своих впечатлениях - нужна ли Вам такая программа, удобно ли с ней работать, что бы Вы хотели изменить или улучшить.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Приложения → Другие → NaviCAD - навигация в Автокаде
Форум работает на PunBB, при поддержке Informer Technologies, Inc