| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > шаблоны.. блоки.. программы..

шаблоны.. блоки.. программы..

Ответ
Поиск в этой теме
Непрочитано 23.01.2007, 13:20 #1
шаблоны.. блоки.. программы..
kolobrod
 
Москва
Регистрация: 01.09.2006
Сообщений: 12

Возникла странная проблема.

Есть программа на лиспе, которая в пустом чертеже по данным из файла рисует схему. Для своей работы она использует несколько блоков (порядка 50).

Для этой программы есть шаблон, который включает все эти блоки. Я создаю новый файл из шаблона, запускаю программу и получаю схему. Все замечательно, все меня устраивает.

Теперь захотелось раздать эту программу другим людям. Пусть пользуются на здоровье. И тут начались странные проблемы.

Самое простое дать людям лисп, шаблон, рассказать куда че прописать, и все должны быть довольны. Но руками прописывать не очень интересно. Больше всего проблем с шаблоном. В конфигурации папка, в которой лежат шаблоны, может быть только одна (или я че-то не понимаю), и ту что есть по умолчанию, в проводнике не вдруг найдешь.

Сразу пришла другая мысль - проверять создан ли текущий файл из нужного шаблона, и, если нет, создавать новый и в нем выполнять программу. Но из лиспа это оказалось сделать невозможно. Попробовал из VBA, но тоже что-то не получилось. Может не докапал. Надо будет еще покапать, но вопрос не в этом.

Попробовал зайти с другого конца. Выделил каждый блок в свой файл и прописал папку с ними в путях поиска блоков. При этом запускаю свою прогу на новом файле и все нужные блоки находятся и вставляются. Но в какой то момент на вставке очередного блока получаю от акада сообщение: "FATAL ERROR: Unhandled Access Violation Reading 0x0004 Exception at 644fee80h", и все мирно закрывается. Сообщение получаю каждый раз на разном блоке для разных наборов данных. Для одного набора данных на одном и том же блоке.

По всему этому вопросы:
1. Что можно сделать с этой ошибкой. Хотя бы как понять откуда она?

2. Можно ли к текущему файлу применить шаблон - скопировать из него блоки, стили и т.д.?

3. Есть ли смысл копать VBA на предмет решения?

4. Какой подход более правильный?
Просмотров: 5841
 
Непрочитано 23.01.2007, 13:32
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


ИМХО: при работе лиспа проверять наличие нужного блока в файле:
Код:
[Выделить все]
(if (tblobjname "block" <name>))
И если блока нет, то выдавать соответствующее предупреждение. Либо попробовать программно (через (command "_.-insert")) вставить файл библиотеки блоков. Это, по-моему, чуть ли не самое простое решение.
А вот почему ошибка, интересно, нарисовывается? Попробуй на AutoCAD поставить сервис-пак под свою версию.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 23.01.2007, 14:23
#3
kolobrod


 
Регистрация: 01.09.2006
Москва
Сообщений: 12


Цитата:
А вот почему ошибка, интересно, нарисовывается? Попробуй на AutoCAD поставить сервис-пак под свою версию.
Да. Проблема в ACAD 2004. Сейчас проверил в 2006 - все работает

Цитата:
И если блока нет, то выдавать соответствующее предупреждение.
хотелось бы чтоб без лишних вопросов: setup запустил - появилась менюшка в акаде; пункт менюшки выбрал - нарисовалась схема. ...

Спасибо. будем разбираться с сервиспаками.
kolobrod вне форума  
 
Непрочитано 23.01.2007, 14:34
#4
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Шаблоны вообще не имеют отношения к программированию - это для облегчения ручной работы.

Программа должна сама знать что ей надо, если нужно - сама разыскивать блоки в библиотеке или просто на диске, должна сама знать, где что лежит. Если надо - сама должна создавать текстовые стили и все что надо, но не на основе шаблона, а на основе каки-то настроек, например в INI-файле. Да и стиль-то программе не нужен по большому счету.

Пользователям ничего не нужно рассказывать "куда че". Разве что для очень привередливых не рассказать, а написать, как изменить какие-нибудь настройки.

Пользоваель должен знать только, как запустить программу инсталляции. Все остальное - забота программиста.

LISP или VBA - принципиального значения не имеет.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 23.01.2007, 14:34
#5
kolobrod


 
Регистрация: 01.09.2006
Москва
Сообщений: 12


Цитата:
Либо попробовать программно (через (command "_.-insert")) вставить файл библиотеки блоков.
Да. Че-то я не подумал. Так и надо.
kolobrod вне форума  
 
Непрочитано 23.01.2007, 14:39
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


http://dwg.ru/forum/viewtopic.php?t=1606
http://dwg.ru/search.php?res=1169552...e=2&mod=1&st=1
http://dwg.ru/search.php?res=1169552...e=2&mod=1&st=1
http://dwg.ru/search.php?sid=&sName=...e=2&mod=1&st=1
Поиск по словам innosetup, инсталлятор, инсталл
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.01.2007, 14:44
#7
Mercury

Инженер-конструктор
 
Регистрация: 09.04.2006
г. Запорожье Украина
Сообщений: 368
<phrase 1=


А что за схемы хоть рисует?
Mercury вне форума  
 
Автор темы   Непрочитано 23.01.2007, 14:56
#8
kolobrod


 
Регистрация: 01.09.2006
Москва
Сообщений: 12


Цитата:
Программа должна сама знать что ей надо, если нужно - сама разыскивать блоки в библиотеке или просто на диске, должна сама знать, где что лежит. Если надо - сама должна создавать текстовые стили и все что надо, но не на основе шаблона, а на основе каки-то настроек, например в INI-файле. Да и стиль-то программе не нужен по большому счету.
Полностью согласен. На все 100. Для хорошего коммерческого продукта... Который делается командой, с ТЗ, ТТ , ... и т.д. А для автоматизации своих же повторяющихся действий, когда сначала не очень понятно что же хочется, думаю возможны варианты.

А когда одно - другое автоматизировано - хочется все собрать, причесать... а все по-разному написано... в соответствии с процессом освоения инструментов... Отсюда и проблемы получаются.
kolobrod вне форума  
 
Непрочитано 23.01.2007, 15:09
#9
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Настоятельно рекомендую купить книгу "САПР на базе AutoCAD - как это делается". Там и эти, и другие вопросы решены и объяснены
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2007, 11:15
#10
kolobrod


 
Регистрация: 01.09.2006
Москва
Сообщений: 12


Цитата:
Настоятельно рекомендую купить книгу "САПР на базе AutoCAD - как это делается". Там и эти, и другие вопросы решены и объяснены
Купил... Изучаю ...
kolobrod вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > шаблоны.. блоки.. программы..

Размещение рекламы