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

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

лишние "" в строке command

Ответ
Поиск в этой теме
Непрочитано 28.07.2005, 14:03 #1
лишние "" в строке command
Александер
 
Регистрация: 15.06.2005
Сообщений: 184

Возникла таккая проблема в зависимости от условий надо написать строку:
(Эта программка загружает доп. линии из указанного файла)
если линии с такими именами не загружены, то
(command "_linetype" "_l" "*" "line/lines.lin" "" )
а если линии уже загружены, то
(command "_linetype" "_l" "*" "line/lines.lin" "" "" "" "" "" "" "" "" "")
количество знаков "" определяется кол-вом загружаемых линий, у меня их 8 шт. загружается.
так вот если писать много раз "" , то в случаи если линии еще не загружены, 8 раз вылезает строка "неизвестная команда "имя функции"". а если написать знак "" один раз, то в случаи, если линии уже были загружены ранее 8 раз переспрашивает перезаписать их или нет?

как можно решить эту проблему?

как вариант думаю можно просто проверять определена ли уже линия с таким именем, и если определена, то ее надо переопределить, если не определена, то просто определить.
как такое можно сделать?
Просмотров: 3103
 
Непрочитано 28.07.2005, 14:16
#2
Кулик Алексей aka kpblc
Moderator

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


Код был подсказан Fantomas'ом, я его и пользовал:
Код:
[Выделить все]
(if (not (tblsearch "LTYPE" layer_ltype))	;Если не найдено такое описание линии
      (command "_.-Linetype" "_Load" layer_ltype layer_linedef_file "") ;Загрузить
      );_if tblsearch
Здесь перед этим выполняется назначение layer_ltype, layer_linedef_file. Первая переменная - тип линии, вторая - файл описания.
---
Добавлено:
Тут же можно использовать нечто вида
Код:
[Выделить все]
(while (/= (getvar "cmdactive") 0)
(command "")
);_while
Т.е. вместе получится нечто типа:
Код:
[Выделить все]
(if (not (tblsearch "LTYPE" layer_ltype))	;Если не найдено такое описание линии
      (progn
        (command "_.-Linetype" "_Load" "*" layer_linedef_file "") ;Загрузить
        (while (/= (getvar "cmdactive") 0)
          (command "")
          );_while
        );_progn
      );_if tblsearch
---
Добавлено №2:
Вообще-то, если честно, не могу понять смысла одновременной подгрузки множества типов линий. Может, проще подгружать по одному?
В последнем коде надо по идее организовывать цикл по именам линий, т.к. _purge может и не удалить "проверочный" тип линии, надо проходиться по всем.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.07.2005, 14:30
#3
Александер


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


спасибо очень помогло
еще второе условие поставил чтобы если уже загружена, чтобы линию переопределил и все.
Александер вне форума  
 
Непрочитано 28.07.2005, 14:37
#4
Кулик Алексей aka kpblc
Moderator

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


Была тут тема "Тип линии", я там несколько лиспов накидал (самое главное - работают), посмотри, может, и покатит...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 01.08.2005, 10:04
#5
Александер


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


<kpblc
спасибо
Александер вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > лишние "" в строке command