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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > создание файла из пункта меню; по шаблону - хелп пл

создание файла из пункта меню; по шаблону - хелп пл

Ответ
Поиск в этой теме
Непрочитано 17.03.2010, 10:52 #1
создание файла из пункта меню; по шаблону - хелп пл
мы виталич
 
Регистрация: 14.02.2008
Сообщений: 110

из строки меню
Код:
[Выделить все]
[OTVOD1,Отвод]^C^C(if (null sekt) (progn (load "LODBIG.fas")(load "Nakl_tr.fas") (load "Nitka20.LSP") (load "Strel.fas") (load "tr_plosk_dialog.fas") (load "sekt.fas")))(sekt)
перед загрузкой *.fas
хочу создать новый файл по существующему шаблону "123.dwt"
чтобы фасы загужались именно в него...
средствами лиспа - не знаю как
(command "_new" "c:\\123.dwt") - не получилось, а дальше знаний не хватает...

конструкция вида
Код:
[Выделить все]
(vl-cmdf "_.vbastmt" (strcat "Documents.Add ("123.dwt")"))
выдает ошибку "неверный тип аргумента: stringp nil"
хоть в басике работате на ура...

плиз хелп
Просмотров: 2631
 
Непрочитано 19.03.2010, 00:27
#2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


(vla-add (vla-get-documents (vlax-get-acad-object)) "123.dwt") не подойдет?
gomer вне форума  
 
Автор темы   Непрочитано 19.03.2010, 11:17
#3
мы виталич


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


спасибо, подойдет замечательно
(в принципе это уже порешил на vba, но ваш вариант без закрузки модуля...)
продолжение вопроса
1. чем заменить vba интсрукцию вида
Код:
[Выделить все]
ThisDrawing.Application.Documents.Item(Documents.Count - 1).Activate
2. несмотря на активацию созданного файла в предудущем шаге - fas'ы загружаються и вызываються в исходном (по крайней мере - в vba варианте создания файла) - как победить?
мы виталич вне форума  
 
Непрочитано 19.03.2010, 23:25
#4
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Попробуй прилепить к своему меню файл "твое_меню.mnl".
Имя этого файла должно совпадать с именем файла меню, а находиться он должен в той же папке.
В нем как в обычном лиспе прописываешь загрузку fas-модулей.
При загрузке меню твои fas-модули должны загружаться автоматически в не зависимости от выбранного шаблона
gomer вне форума  
 
Автор темы   Непрочитано 22.03.2010, 14:11
#5
мы виталич


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


to gomer
проблемы с загрузкой фасов нет у меня они были прописаны в меню, ваш вариант тоже интересен - попробовал...

но проблема в другом:
загружая в меню vba модуль и выполняя макрос
Код:
[Выделить все]
ThisDrawing.Application.Documents.Add ("123.dwt")
ThisDrawing.Application.Documents.Item(Documents.Count - 1).Activate
я получаю новый активный файл, но несмотря на принудительную активацию вызов функции из фаса происходит в старом файле...
непонимаю почему не работает - окно нового файла явственно становится текущим - но фиг..

в варианте с *.mnl
строка меню
Код:
[Выделить все]
[OTVOD1,Отвод]^C^C(progn (vl-load-com) (vla-add (vla-get-documents (vlax-get-acad-object)) "123.dwt"))(sekt)
mnl
Код:
[Выделить все]
^C^C(progn (load "LODBIG.fas")(load "Nakl_tr.fas") (load "Nitka20.LSP") (load "Strel.fas") (load "tr_plosk_dialog.fas") (load "sekt.fas")(load "SBotv.fas") (load "nakl_tr.lsp") (load "Kon.fas") (load "per11.fas") (load "Krup.fas") (load "Krupk.fas") (load "Trn.fas") (load "Stani.fas") (load "Prug-prug") (load "Stuc.fas"))
та-же песня, вид сбоку
- фасы в новый файл загружены, но функция вызывается в старом файле
мы виталич вне форума  
 
Непрочитано 23.03.2010, 02:15
#6
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Если чесно я не совсем понимаю стратегической цели данного эксперимента...
Попробуйте такой вариант:
Код:
[Выделить все]
Sub test()
' Пример добавляет документ из шаблона и рисует в нем линию и окружность
' ps. см. справку, там все есть...

Dim NewDoc As AcadDocument

Set NewDoc = ThisDrawing.Application.Documents.Add("acad.dwt")

'Такую конструкцию можно использовать для вызова комманд из fas-программ
NewDoc.SendCommand "_line" & vbCr & "0.0,0.0" & vbCr & "20.0,0.0" & vbCr & vbCr


'А такое сгодится для непосредственного вмешательства...

Dim centerPoint(0 To 2) As Double
Dim radius As Double
    
' Define the circle
    centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0#
    radius = 5#
    
    ' Create the Circle object in model space
   NewDoc.ModelSpace.AddCircle centerPoint, radius

' ... ... ... любые действия c объектом NewDoc... ... ... ...

NewDoc.Activate ' Для визуализации проделанного

End Sub
А вообще я считаю, что работать нужно в текущем документе
gomer вне форума  
 
Автор темы   Непрочитано 24.03.2010, 22:15
#7
мы виталич


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


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

с вашими подсказками все получилось в лучшем виде - спасибо

зы sendcommand - так в хелпе и не нашел нашел

Последний раз редактировалось мы виталич, 25.03.2010 в 08:26.
мы виталич вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > создание файла из пункта меню; по шаблону - хелп пл

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание графика в AutoCAD на основе txt или xls файла Red Nova Программирование 116 06.04.2017 09:20
Как отключить создание каждый раз нового файла .bak при нажатии на кнопку "Сохранить" или при закрытии любого файла .dwg в Автокад 2008? gve2005 AutoCAD 4 30.10.2009 10:30
Меню выбора открываемого файла в ACAD ascota AutoCAD 1 04.02.2009 19:08
Попасть в слой. Vova AutoCAD 106 10.03.2006 04:36