Тема: NaviCAD - навигация в Автокаде

Цель программы - облегчить навигацию по чертежу, т.е. просмотр
и редактирование чертежей, особенно больших и сильно заполненных,
с множеством мелких деталей.
Сайт программы - http://navicad.narod.ru

Re: NaviCAD - навигация в Автокаде

Буржуй делал для буржуев? В русских версиях не работает. Вместо пиктограмм на кнопках вопросительные знаки. В меню ссылки на несуществующие файлы .bmp.

Re: NaviCAD - навигация в Автокаде

Вдогонку: если не есть коммерческая тайна, можно было бы и lsp-файл приложить. vlx, конечно, здорово, но лично у меня постоянно проблемы с их выгрузкой и подгрузкой

Re: NaviCAD - навигация в Автокаде

> Владимир Громов

> kpblc
Спасибо за первые отклики.
Программу делал для себя. Посмотрел, что получилось, и решил выложить для общего пользования.
Программа писалась и тестировалась в среде англоязычного Автокада 2002. В русском Автокаде
не проверялась, т.к. его у меня нет.
Лисп-код выложить пока не готов. Выложенный файл прошу считать бета-версией. Программа
находится в работе, поэтому буду благодарен за Ваши отклики и предложения
по улучшению ее работы.

Re: NaviCAD - навигация в Автокаде

(всю дорогу ИМХО)
В первую очередь сделать поддержку локализованных версий следует - перед командами поставить "_.", перед опциями - "_".
Меню можно предоставлять только 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. Если не жалко, можно и код прислать в почту - может, чего и подскажу.

Re: NaviCAD - навигация в Автокаде

Сюда же. Уже по работе программ.
1. Создание vport выполняется на новом листе независимо от того, на какой вкладке я нахожусь. А если надо сделать на текущем?
2. Создаение vport выполняется а) по текущему положению экрана (не смотрится на лист, его ориентацию, печатаемую область, т.е. во весь экран и б) активное пространство - модель. В.Э. не заблокированы. ИМХО надо сделать либо диалог, либо как-то еще предоставлять шансы устанавливать опции.
3. Опять же, к vport: создание производится на слое NVС (а по требованиям СТП имя слоя может быть иным!), который, во-первых, печатается, а во-вторых, имеет вес линии Default. ИМХО сделать слой, во-первых, непечатаемым (можно тоже в окне установки), а во-вторых, вес линии для него сделать предопределенным. Если у меня lwdefault установлено в 2.11 мм, никто меня не переубедит, что это неправильно.
4. Нет отмены. Отмена выполняется по шагам внутри лиспа. ИМХО сделать метки начала и конца отмены. Как - уже не раз на форуме было.

Re: NaviCAD - навигация в Автокаде

Поддержку русского Автокада сделаю в ближайшее время.

Перед первым вызовом любой функции NaviCAD руками приходится загружать vlx-приложение.

Программу достаточно загрузить в чертеж один раз, и все ее функции будут доступны. А еще лучше поместить ссылку на нее в ACAD.LSP, и она будет загружаться автоматически.
Имена функций поменяю - согласен. Однако такие имена хороши в программе, а набирать с клавиатуры такое имя... Т.е., для вызова с клавиатуры, имхо, надо оставить короткие имена. При совпадении имен юзер всегда может изменить имя своей функции.
Инсталляция и деинсталляция - в планах, но не на ближайшее время.
Теперь по пунктам.
1.Создание двух ВЭ предполагается только на специальном рабочем лэйауте NVC. Он используется ТОЛЬКО для работы с программой.
2. Вопрос не совсем понятен. Для работы с программой с использованием режима Float Model Space надо предварительно отключить в Options показ печатаемой области, листа бумаги и т.п. (см. README файл). Созданные ВЭ на вкладке NVC блокировать нельзя, иначе в них нельзя будет выполнять команды ZOOM и PAN.
3. Примитивы слоя NVC (окна) присутствуют только на лэйауте NVC. Я не предполагал, что кто-то захочет печатать из него. Предопределенный вес линий ВЭ и непечатаемость слоя сделаю в будущей версии.
4. Не понятно, о какой отмене идет речь. Поясните.

Re: NaviCAD - навигация в Автокаде

> kpblc
В дополнение к ответу на 2-й вопрос. Конечно, лучше не убирать
вручную все эти галочки в Options > Display, а заложить это
в программу. Подумаю, как это сделать.

Re: NaviCAD - навигация в Автокаде

> 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. Народ, меня - один! Ко мне - на "ты".

Re: NaviCAD - навигация в Автокаде

> kpblc
Замечания учту, кроме:

Насчет блокировки - ИМХО сделать запрос на блокировку и блокировать в зависимости от ответа пользователя. Также сделать активным не пространство модели после создания ВЭ, а пространство листа.

Непонятно, зачем нужен запрос на блокировку ВЭ при создании
рабочей вкладки NVC. Это предполагает: а)ответ на вопрос и
б)последующую разблокировку (если был ответ "Да"). ИМХО,
это лишние операции, т.к. эта вкладка создается с единственной целью - для работы с программой в режиме FLOAT MODEL SPACE, и только.

лучше всего заставить все-таки работать программу в любом окружении. Если я чего-то настраиваю, то мне совсем неинтересно будет после выполнения невинных в общем-то операций получить непривычный вид када.

Я был бы рад, если бы можно было отключить показ печатаемой области, листа бумаги и т.п. только на вкладке NVC, не изменяя
вида остальных вкладок (лэйаутов). Но я не нашел такой возможности.
А иначе (без отключения всего, что мешает) этот режим использовать нельзя. В конце концов, у пользователя всегда есть выбор - либо работать с программой в обычном MODEL SPACE, либо смириться с некоторыми ограничениями режима PAPER SPACE, зато пользуясь лучшими возможностями управления размерами меньшего окна.

Re: NaviCAD - навигация в Автокаде

Ну вы профи даёте!!Чё гутарить?Работает класно,да ещё на халяву

Re: NaviCAD - навигация в Автокаде

По поводу пиктограмм. Мой ахиватор ZIP (консольный вариант) не взял длинные имена. При использовании TC все распаковалось нормально. На кнопках отобразились все пиктограммы. Желательно учесть возможность работы в локализованной версии.

Re: NaviCAD - навигация в Автокаде

На сайте программы http://navicad.narod.ru выложено обновление - версия 2.01b (beta).
Программа теперь будет работать в русском Автокаде (и других локализованных версиях).
Просьба к участникам форума: сообщите о своих впечатлениях - нужна ли Вам такая программа, удобно ли с ней работать, что бы Вы хотели изменить или улучшить.