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

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

Вопрос по макросу загрузки библиотек

Ответ
Поиск в этой теме
Непрочитано 10.03.2011, 16:35 #1
Вопрос по макросу загрузки библиотек
KuIZZInI
 
Регистрация: 09.12.2010
Сообщений: 10

Добрый вечер,
вопрос возможно нубский, но я в тупике, прошу помощи, суть такая: пишу макрос: ^C^Cnetload C:/upd_acad.dll;netload C:/****/funk.dll; setting;
загрузжаю библиотеку upd_acad лежащую в корне С, далее, вопрос вот в чем что необходимо написать вместо **** чтобы попасть в директорию C:\Documents and Settings\USER_NAME\Application Data?
т.е. в папку по умолчанию, или как она там называется, где USER_NAME имя пользователя.
Просмотров: 3656
 
Непрочитано 10.03.2011, 16:47
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


%AppData%/funk.dll
но не факт, что автокад это съест (пробовать нужно). если имена переменных использовать в каталогах поиска автокада - он их не понимает.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 10.03.2011, 17:44
#3
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от hwd Посмотреть сообщение
но не факт, что автокад это съест
По крайней мере в cui он их точно "не ест" - из за чего приходится лезть в xml и переназначать пути установщиком - хорошо еще что новые версии cui фалйы 2008 поддерживает (где еще не запакованные - а в "чистом" виде) - если перестанет распаковный xml поддерживать(.cui - сейчас "родной" формат .cuix), а %appdata% так и не начнет - гемора существенно прибавится.
з.ы. - случаем никто способа назначения "своих" путей к лиспам и dll'кам лучше (чем изменение xml) не знает.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 10.03.2011, 18:20
#4
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Код:
[Выделить все]
^C^C_.netload (strcat (substr (getvar 'roamablerootprefix) 1 (vl-string-search "Autodesk" (getvar 'roamablerootprefix))) "func.dll")
p.s.
Но я хранил бы всё непосредственно в директории (getvar 'roamablerootprefix), при необходимости создавая в ней поддиректории.
Для данного примера это был бы путь, скажем:
C:\Documents and Settings\User_Name\Application Data\Autodesk\AutoCAD 2010\R18.0\enu\func.dll, а макрос выглядел бы так:
Код:
[Выделить все]
^C^C_.netload (strcat (getvar 'roamablerootprefix) "func.dll")
__________________
...в шее моей жилы железные, и лоб мой - медный...

Последний раз редактировалось Pastor, 10.03.2011 в 18:40.
Pastor вне форума  
 
Непрочитано 10.03.2011, 18:32
#5
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


А может проще создать lsp файл с соответствующими функциями и только вызывать их из него?
trir вне форума  
 
Непрочитано 10.03.2011, 18:47
#6
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Для KuIZZInI.
Лучше всего .NET библиотеки загружать при старте AutoCAD через механизм, использующий реестр Windows, или через доопределение функции s::startup. Иначе, легко нарваться на неприятность, описанную здесь.
__________________
...в шее моей жилы железные, и лоб мой - медный...

Последний раз редактировалось Pastor, 10.03.2011 в 19:50.
Pastor вне форума  
 
Непрочитано 10.03.2011, 19:00
#7
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


Файл acad<номер версии>.lsp

Пишем в конец:
(setq FILEDIA 0)
(command _netload <путь файла>)
(setq FILEDIA 1)
trir вне форума  
 
Непрочитано 10.03.2011, 19:07
#8
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Читаем справку, для чего придумана функция s::startup
Цитата:
You can define an S::STARTUP function to perform any needed setup operations after the drawing is initialized.

The startup LISP files (acad.lsp, acaddoc.lsp, and MNL) are all loaded into memory before the drawing is completely initialized. Typically, this does not pose a problem, unless you want to use the command function, which is not guaranteed to work until after a drawing is initialized.

If the user-defined function S::STARTUP is included in an acad.lsp, acaddoc.lsp, or MNL file, it is called when you enter a new drawing or open an existing drawing. Thus, you can include a definition of S::STARTUP in the LISP startup file to perform any setup operations....
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Автор темы   Непрочитано 11.03.2011, 08:13
#9
KuIZZInI


 
Регистрация: 09.12.2010
Сообщений: 10


Но я хранил бы всё непосредственно в директории (getvar 'roamablerootprefix), при необходимости создавая в ней поддиректории.
Pastor, а как создавать поддиректории не подскажешь?
KuIZZInI вне форума  
 
Непрочитано 11.03.2011, 09:44
#10
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от KuIZZInI Посмотреть сообщение
Но я хранил бы всё непосредственно в директории (getvar 'roamablerootprefix), при необходимости создавая в ней поддиректории.
Имхо - лучше этого не делать. Если потребуется выполнить реинициализацию AutoCAD - этот подкататалог придётся удалить, а следовательно нужно будет не забыть предварительно все нужные вам подкаталоги скопировать. Это лишнее телодвижение, без которого можно обойтись, если хранить данные в др. папке.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.03.2011, 10:40
#11
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Цитата:
Pastor, а как создавать поддиректории не подскажешь?
Я имел в виду то, что раз ты каким-то образом помещаешь туда свой файл func.dll, то тем же способом можешь помещать туда и другие файлы, а так же создавать там поддиректории (вручную, например). Если, конечно, в этом есть необходимость.

p.s.
Hwd скорее всего прав. Говорю "скорее всего", потому что сам я в этом вопросе не компетентен. Свои поделки я размещаю в отдельных папках: одно приложение - одна корневая папка, и не связываюсь с директориями типа roamablerootprefix. А если нужно решение уровня проектного отдела (домена), то смотри, например, у того же hwd на сайте. Толковая штука на мой взгляд. А есть еще книга "Сапр на базе AutoCAD - как это делается". Там вопросу "где что размещать" уделено много внимания. И написавший её - "в авторитете"
__________________
...в шее моей жилы железные, и лоб мой - медный...

Последний раз редактировалось Pastor, 11.03.2011 в 12:32.
Pastor вне форума  
 
Непрочитано 11.03.2011, 11:46
#12
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Pastor Посмотреть сообщение
А если нужно решение уровня проектного отдела (домена), то смотри, например, у того же hwd на сайте. Толковая штука на мой взгляд.
Спасибо. Это бета-версия. Сейчас занимаюсь оптимизацией, рефакторингом и модульными тестами - конечный результат будет выложен в виде готовой, документированной библиотеки + исходники + видео. Замечания/пожелания будут приветствоваться.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.03.2011, 12:30
#13
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


hwd, а где можно вопросики задавать на тему твоей деятельности на сайте http://sites.google.com/site/bushmansnetlaboratory/ ?
Vildar вне форума  
 
Автор темы   Непрочитано 11.03.2011, 12:33
#14
KuIZZInI


 
Регистрация: 09.12.2010
Сообщений: 10


Сайт hdw действительно очень хорош, очень много информации от туда пригодилось в ходе работы.
Смотрите, допустим в %APPDATA% есть каталог suppfun как к нему обратиться?
KuIZZInI вне форума  
 
Непрочитано 11.03.2011, 12:34
#15
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Vildar Посмотреть сообщение
hwd, а где можно вопросики задавать на тему твоей деятельности на сайте http://sites.google.com/site/bushmansnetlaboratory/ ?
скайп, почта.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.03.2011, 12:40
#16
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Цитата:
Смотрите, допустим в %APPDATA% есть каталог suppfun как к нему обратиться?
Если речь идет все о том же макросе, то так:
Код:
[Выделить все]
^C^C_.netload (strcat (substr (getvar 'roamablerootprefix) 1 (vl-string-search "Autodesk" (getvar 'roamablerootprefix))) "suppfun/func.dll")
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Непрочитано 11.03.2011, 12:52
#17
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Извиняюсь у автора. Последний вопрос не в тему.
Цитата:
Сообщение от hwd Посмотреть сообщение
скайп, почта.
Понятно. Это фиково. Может получиться, что тебе по сто раз один и тотже вопрос задавать будут
Vildar вне форума  
 
Автор темы   Непрочитано 11.03.2011, 17:02
#18
KuIZZInI


 
Регистрация: 09.12.2010
Сообщений: 10


Дабы не плодить темы, задам еще вопрос, есть ли команда для удаления последнего вставленного изображения?
KuIZZInI вне форума  
 
Непрочитано 11.03.2011, 17:33
#19
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Команды такой нет.
А всставленные изображения можно посмотреть и удалить при необходимости из палитры внешних ссылок (_externalreferences).
Vildar вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вопрос по макросу загрузки библиотек



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по макросу ignor AutoCAD 42 12.11.2008 05:55
Вопрос по кирпичной стене ЧерныШ Каменные и армокаменные конструкции 18 17.01.2008 16:38
вопрос по пожарке (отсек, секция)+из чего делать вентканалы tyoma Прочее. Архитектура и строительство 8 02.06.2006 20:01
Вопрос к ГУРУ only :) Таблицы в AUTOCAD 2005 X-DeViL Программирование 18 07.12.2004 16:42
Крепление раковины - вопрос к строителям Pilot Прочее. Архитектура и строительство 21 06.12.2004 10:35