Vla-put не принимает значение от vla-get ?! Добавление путей к файлам печати.
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Vla-put не принимает значение от vla-get ?! Добавление путей к файлам печати.

Vla-put не принимает значение от vla-get ?! Добавление путей к файлам печати.

Ответ
Поиск в этой теме
Непрочитано 11.11.2014, 14:28 #1
Vla-put не принимает значение от vla-get ?! Добавление путей к файлам печати.
mkung
 
RUSSIA
Регистрация: 05.09.2007
Сообщений: 166

Добрый день.
В пути поиска вспомогательных файлов печати надо ДОБАВИТЬ еще пути.
Столкнулся с проблемой.
Через окно параметров можно добавить путей сколько угодно и vla-get- выдаст список путей, разделенных точкой с запятой.
Но если попробовать записать такое значение через vla-put-, то вылазит "ошибка Automation: неверный аргумент".
Для чистоты эксперимента набросал маленький лиспик:
Код:
[Выделить все]
 (vl-load-com)
(setq pref_obj (vla-get-Files (vla-get-Preferences (vlax-get-acad-object))))
(setq pc3 (vla-get-PrinterConfigPath pref_obj))
(princ pc3) (princ "\n")
(vla-put-PrinterConfigPath pref_obj pc3)
Если путей 2 и больше, то vla-put не воспринимает значение, возвращаемое vla-get!!!
Подскажите - как побороть эту напасть.
Заранее благодарен.

P.S. AutoCAD 2014 RUS, Win8 x64

Последний раз редактировалось mkung, 11.11.2014 в 14:43.
Просмотров: 2760
 
Непрочитано 11.11.2014, 14:40
#2
Кулик Алексей aka kpblc
Moderator

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


mkung, ради интересу: версия AutoCAD?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.11.2014, 14:44
#3
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166


AutoCAD 2014 RUS, Win8 x64
mkung вне форума  
 
Непрочитано 11.11.2014, 15:44
#4
Кулик Алексей aka kpblc
Moderator

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


Попробуй работать через (getenv "PrinterConfigDir") и (setenv "PrinterConfigDir")

----- добавлено через ~3 мин. -----
Я попробовал так:
Код:
[Выделить все]
 (vl-load-com)

(defun tt (/ pc3 pref value1 value2 err)
  (setq pc3    (vla-get-printerconfigpath
                 (setq pref (vla-get-files
                              (vla-get-preferences (vlax-get-acad-object))
                              ) ;_ end of vla-get-files
                       ) ;_ end of setq
                 ) ;_ end of vla-get-PrinterConfigPath
        value1 "C:\\Users\\a.kulik\\appdata\\roaming\\autodesk\\autocad 2014\\r19.1\\rus\\plotters"
        value2 "d:\\001"
        ) ;_ end of setq

  (foreach item (list pc3 value2 value1 (strcat value1 ";" value2))
    (if (vl-catch-all-error-p
          (setq err (vl-catch-all-apply
                      (function
                        (lambda ()
                          (vla-put-printerconfigpath pref item)
                          ) ;_ end of lambda
                        ) ;_ end of function
                      ) ;_ end of vl-catch-all-apply
                ) ;_ end of setq
          ) ;_ end of vl-catch-all-error-p
      (progn
        (princ (strcat "\nError setting to value \"" item "\" : " (vl-catch-all-error-message err)))
        (if (vl-catch-all-error-p
              (setq err (vl-catch-all-apply
                          (function
                            (lambda ()
                              (setenv "PrinterConfigDir" item)
                              ) ;_ end of lambda
                            ) ;_ end of function
                          ) ;_ end of vl-catch-all-apply
                    ) ;_ end of setq
              ) ;_ end of vl-catch-all-error-p
          (princ (strcat "\nError setting (SETENV) to value \"" item "\" : " (vl-catch-all-error-message err))
                 ) ;_ end of princ
          (princ (strcat "\nSuccess setting (SETENV) to value \"" item "\""))
          ) ;_ end of if
        ) ;_ end of progn
      (princ (strcat "\nSuccess setting to value \"" item "\""))
      ) ;_ end of if
    ) ;_ end of foreach
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.11.2014, 16:11
#5
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Причина, по которой не работает описана здесь: Как установить путь к двум и более каталогам конфигурации принтеров (PrinterConfigPath) при помощи AutoCAD .NET API?
Там есть пример кода, но на C#/VB.NET. Смысл тот же, что и у Кулик Алексей aka kpblc, т.е. использование (getenv ...) и (setenv ...)

О! Нашел аналогичную тему с кодом на lisp: Простая альтернатива использованию COM-объекта Preferences в AutoCAD

Последний раз редактировалось Александр Ривилис, 11.11.2014 в 16:16.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 12.11.2014, 06:57
#6
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166


Спасибо.
Удачно я решил переходить на работу с объектной моделью...
mkung вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Vla-put не принимает значение от vla-get ?! Добавление путей к файлам печати.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Проблемы с расчетом Ж/Б каркаса в ANSYS derik ANSYS 457 04.07.2017 16:16
Вес линии и стиль печати Barbi AutoCAD 22 26.04.2012 17:56
Как исправить ошибку при печати: "Max значение толщины линии совпадает с min"? Elany AutoCAD 2 26.11.2010 14:00
Где хранится значение суффикса имени файла печати? kp+ AutoCAD 3 27.01.2006 15:05