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

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

Загрузка типа линии из макроса

Ответ
Поиск в этой теме
Непрочитано 24.01.2005, 13:40 #1
Загрузка типа линии из макроса
Кулик Алексей aka kpblc
Moderator
 
LISP, C# (ACAD 200[9,12,13,14])
 
С.-Петербург
Регистрация: 25.08.2003
Сообщений: 39,772

Прошу не бить ногами за возможно глупый вопрос.

Собственно проблема:
Надо в файл по нажатию на кнопку загрузить тип линии. Типы линий прописаны в отдельном файле (путь до файла есть в Support file types, например, c:\_mnu\lines.lin, имя линии - B0). При попытке вызова
Код:
[Выделить все]
^C^C_Linetype;_-Load;"c:\\_mnu\\lines.lin/B0";
кад вываливает диалоговое окно с требованием указания файла, откуда надо грузить (кстати, так и не вычислил, как правильно указать одновременно и путь файла, и имя линии).
Это часть 1.
Теперь часть 2: при повторном загружении типа линии кад вываливает запрос на перезагрузку типа линии.

Надо:
1. Нормально загружать тип линии (без диалоговых окон).
2. Снять запрос на перезагрузку. Тип линии загружается только по необходимости. Т.е. может быть загружен первый раз и сколько-то раз потом. Ессно, хочется сделать макрос универсальным.
Вариант с лиспом, увы, не пойдет - работа делается для ACAD LT. Вариант "новый шаблон" как то... не фонтан, честно говоря.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Просмотров: 12085
 
Непрочитано 24.01.2005, 14:19
#2
Lenich

Опер дир
 
Регистрация: 28.04.2004
Москва
Сообщений: 291


Цитата:
кад вываливает диалоговое окно с требованием указания файла,
правльино вываливает. Надо точку с запятой после лоад убрать.

Вот ещё как вариант:
Код:
[Выделить все]
^C^Cvbastmt ThisDrawing.Linetypes.Load "B0", "acad.lin"
Не проверял, но должно работать.

Цитата:
Теперь часть 2: при повторном загружении типа линии кад вываливает запрос на перезагрузку типа линии.
Надо делать обработку ошибок вот пример на МИФ:
Код:
[Выделить все]
Sub Example_Load()
    ' This example attempts to load the linetype "CENTER" from
    ' the acad.lin file. If the linetype already exists, then
    ' a message is displayed.
    
    Dim linetypeName As String
    linetypeName = "CENTER"
    
    ' Load "CENTER" line type from acad.lin file
    On Error Resume Next    ' trap any load errors
    ThisDrawing.Linetypes.Load linetypeName, "acad.lin"
    
    ' If the name already exists, then notify user
    If Err.Description = "Duplicate record name" Then
        MsgBox "A line type named '" & linetypeName & "' already exists.", , "Load Example"
    End If
    
End Sub
Lenich вне форума  
 
Непрочитано 24.01.2005, 14:37
#3
Геннадий aka PG

Машиностроение, Проектирование
 
Регистрация: 15.09.2003
Москва
Сообщений: 1,113
<phrase 1=


^C^C_-Linetype;_Load;"c:\\_mnu\\lines.lin/B0";
По-моему ты тире не там поставил, надо перед LINETYPE
__________________
С уважением,
Геннадий aka PG
Геннадий aka PG вне форума  
 
Автор темы   Непрочитано 24.01.2005, 14:44
#4
Кулик Алексей aka kpblc
Moderator

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


Да все дело в том, что надо под LT! Этот гад ни про ЛИСП, ни, тем более, про VBA слыхом не слыхивал.
>>Геннадий:
Да все едино, минусы уже там роли не играют. Есть смутное подозрение, что дело в строке, которая идет после Load. Вот ее бы формат узнать... - т.е. полное имя файла + имя линии.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.01.2005, 14:57
#5
Кулик Алексей aka kpblc
Moderator

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


Ура! Решение:
Код:
[Выделить все]
^C^C_-Linetype;_Load;"-B0-" "gosted.lin";;^C^C
Мужики, вы гении. Огромное спасибо.
Решение туповатое, но и LT не просто так дан
Естественно, файл "gosted.lin" должен лежать в папках Support file types, имя линии - только английское и т.д.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Загрузка типа линии из макроса

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

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