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

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

Скрипт для добавления путей в раздел "Папки с файлами инструментальных палитр"

Ответ
Поиск в этой теме
Непрочитано 17.04.2014, 13:45 #1
Скрипт для добавления путей в раздел "Папки с файлами инструментальных палитр"
olga87
 
Регистрация: 28.05.2007
Сообщений: 229

Здравствуйте Уважаемые программисты!
Помогите пожалуйста подправить файл scr (приведенный ниже), чтобы в Автокаде 2007 в раздел "Папки с файлами инструментальных палитр" добавлялся свой дополнительный путь (C:\\ToolPalettes) последним из уже существующих там путей (с сохранением имеющихся путей)?

Сейчас скрипт затирая вставляет автокадовский по умолчанию и пользовательский путь:
код:
(setvar "*_TOOLPALETTEPATH" "%RoamableRootFolder%\\support\\ToolPalette;C:\\ToolPalettes")
;

Спасибо!
Просмотров: 3055
 
Непрочитано 17.04.2014, 22:11
#2
Кулик Алексей aka kpblc
Moderator

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


Ну так получи сначала имеющиеся значения, проанализируй их на предмет содержания пользовательского пути, и, если его нет, добавь и установи toolpalettepath.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 18.04.2014, 11:11
#3
olga87


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


Подскажите пожалуйста, как исправить код (ниже), чтобы добавлялся пользовательский путь? Сейчас он лишь выдает имеющиеся пути к палитрам.

код:
(vl-load-com)
(defun c:Example_ToolPalettePath()

(setq acadObj (vlax-get-acad-object))
(setq pref (vla-get-Files (vla-get-Preferences acadObj)))

(setq defToolPalettePath (vla-get-ToolPalettePath pref))
(alert (strcat "The current tool palette path is " defToolPalettePath))

)

Заранее спасибо!
olga87 вне форума  
 
Непрочитано 18.04.2014, 11:42
#4
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


(vla-put-ToolPalettePath pref
(strcat
(vla-get-ToolPalettePath pref)
";"
пользовательский_путь
)
)
kakt00z вне форума  
 
Непрочитано 18.04.2014, 11:44
1 | #5
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Как исправить - не знаю
Код:
[Выделить все]
 (or
  (vl-string-search ;или находим
    adpath ;добавляемый путь
    (setq curpath (getvar '*_toolpalettepath))) ;в существующих путях
  (setvar ;или устанавливаем
    '*_toolpalettepath ;в существующие пути
    (strcat adpath ";" curpath))) ;присоединенный к существующим пользовательский
Только до выполнения этого надо присвоить значение adpath
ciril вне форума  
 
Автор темы   Непрочитано 18.04.2014, 12:39
#6
olga87


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


Подскажите пожалуйста, как в коде ниже запретить добавление пути "c:\\temp", если он существует?

код:
Код:
[Выделить все]
 (vl-load-com)
(defun c:Example_ToolPalettePath()
    (setq acadObj (vlax-get-acad-object))
    (setq pref (vla-get-Files (vla-get-Preferences acadObj)))
    (setq defToolPalettePath (vla-get-ToolPalettePath pref))
    (alert (strcat defToolPalettePath))

    (or (vl-string-search "c:\\temp" (setq defToolPalettePath (vla-get-ToolPalettePath pref)))
;;то ничего
;;иначе:
    (vla-put-ToolPalettePath pref (strcat (vla-get-ToolPalettePath pref)";""c:\\temp")))

)
Заранее спасибо!

Последний раз редактировалось Кулик Алексей aka kpblc, 18.04.2014 в 12:46.
olga87 вне форума  
 
Непрочитано 18.04.2014, 12:47
#7
Кулик Алексей aka kpblc
Moderator

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


Gnashkoon, есть специальный тэг code, lisp - пользуйся ими.
Цитата:
Сообщение от Gnashkoon Посмотреть сообщение
как в коде ниже запретить добавление
Я же говорил - сравнивай значения. wcmatch в руки
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.04.2014, 13:19
#8
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


имя диска в поиске и замене пиши заглавной: "C:\\temp"
ciril вне форума  
 
Непрочитано 18.04.2014, 13:25
#9
Кулик Алексей aka kpblc
Moderator

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


ciril, зачем так-то? Есть strcase, которая полностью переведет либо в верхний, либо в нижний регистр (правда, там есть пара тонкостей, связанных с кириллицей в строке)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.04.2014, 13:41
#10
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Вот именно поэтому
ciril вне форума  
 
Автор темы   Непрочитано 18.04.2014, 13:54
#11
olga87


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


Спасибо Всем большое! Ответ найден ((if (vl-string-search)!
olga87 вне форума  
 
Непрочитано 18.04.2014, 14:04
#12
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Gnashkoon, а скажите пожалуйста, при единственном выборе чем if отличается от or?
ciril вне форума  
 
Непрочитано 18.04.2014, 18:15
#13
gomer

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


Цитата:
Сообщение от ciril Посмотреть сообщение
а скажите пожалуйста, при единственном выборе чем if отличается от or?
or: Если Че, То Ниче
if: Если Че, То ЧеТо Или Ниче
if: Если Че, То ЧеТо Или ЧеТоИсчо
gomer вне форума  
 
Автор темы   Непрочитано 18.04.2014, 22:32
#14
olga87


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


ciril спасибо большое!
Вы правы на счет "or" - при единственном выборе это сокращает код.
olga87 вне форума  
 
Непрочитано 19.04.2014, 00:13
#15
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


gomer повеселил, и он прав !
Offtop: if- для меня пережиток прошлого и другого (я про зыки программирования) так же как и repeat, {goto}, vlax-for - туда же, счетчики (там где они не нужны)
неужели не нашли ответ ? такой же простой вопрос
kakt00z вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Скрипт для добавления путей в раздел "Папки с файлами инструментальных палитр"



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На основании чего разрабатывать Генеральный план на линейные объекты? diek Прочее. Архитектура и строительство 28 17.11.2011 22:13