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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программная настройка AutoCAD, как это делается?

Программная настройка AutoCAD, как это делается?

Ответ
Поиск в этой теме
Непрочитано 23.01.2009, 16:34 2 | #1
Программная настройка AutoCAD, как это делается?
Krieger
 
инженер (КМ)
 
Красноярск
Регистрация: 30.10.2004
Сообщений: 3,825

Программная настройка AutoCAD, как это делается?
Этот пост переправлен из-за неактуальности.
В общем в итоге получилось следующее.
Функцию можно использовать для настройки как чужого компьютера так и своего. Для чужого компа профиль не импортируется, т.е. все прочие настройки кроме прописки адресов остаются на месте. Для своего компа логично импортировать таки профиль, что бы сохранить любые адаптированные под себя мелочи.
Если в файле настроек PathFile есть пункт Profile, то будет производится импорт профиля, тогда функция адреса прописывать не будет, т.к. они хранятся в профиле. Если этого пункта нет, то будут прописываться адреса.
Добавил также возможность копирования своего acad.pgp.

Код:
[Выделить все]
 ;|Kr_AutoSetup - функция для настройки AutoCAD.
FirstPath - начальная часть адреса к файлам настройки када и PathFile
PathFile - файл настроек с пунктами для настройки:
    Profile
    SupportPath
    PrinterConfigPath
    PrinterDescPath
    PrinterStyleSheetPath
    TemplateDwgPath
    SheetSetTemplatePath
    QNewTemplateFile
    PageSetupOverridesTemplateFile
    ToolPalettePath
    AutoSavePath
    ToolPaletteProfile
    MenuFile
    ACADPGP

Функция импортирует профиль если он указан, если нет - прописывает пути соответсвующих настроек. Копирует файлы Profile.aws и acad.pgp, подгружает меню.
Если какого либо пункта нет, он игнорируется. Если указанного пути не существует, он создается.

Пример:
(Kr_AutoSetup "D:" "\\Library\\Parameters\\Menu\\Kr_Paths.txt")
|;

;Kr_FindTextFileNextString - ищет строку по образцу и выдает следующую
(defun Kr_FindTextFileNextString (File String / key line NextString f promt FullProfileAdress FullPGPAdress)
  (setq f (open File "r") key T)
  (while (and key (setq line (read-line f)))
    (if (eq (strcase String) (strcase line))     (setq key nil NextString (read-line f) promt (strcat "\n" String " - found"))
                      (setq promt (strcat "\n" String " - not found"))
    );if
   );while
  (close f)
  (princ promt)
  (if (or (not NextString) (eq NextString "") (wcmatch NextString "* *")) (setq NextString nil))
  NextString
  );defun


(defun Kr_AutoSetup (FirstPath PathFile / files key f subpaths obj ActiveProfile temp_profile)
  (vl-load-com)
  (if (findfile (strcat FirstPath PathFile))
    (progn
  (setq files (vla-get-files (vla-get-preferences (vlax-get-acad-object))))
;проверка наличия профиля
  (if (setq ProfileAdress (Kr_FindTextFileNextString (strcat FirstPath PathFile) "Profile"));есть ли файл профиля в файле настроек
    (if (setq FullProfileAdress (findfile (strcat FirstPath ProfileAdress)))
     (if (not (vl-string-search ".ARG" (strcase FullProfileAdress))) (setq FullProfileAdress nil) (princ "\nфайл с расширением *.arg найден"));if
      (princ "\nФайл " FullProfileAdress " не найден")
    );if
    (setq FullProfileAdress nil)
   );if
(if (not FullProfileAdress);если профиля нет прописываем настройки вручную
  (progn
;поддержка supportpath
  (if (Kr_FindTextFileNextString (strcat FirstPath PathFile) "SupportPath")
    (progn
      (setq f (open (strcat FirstPath PathFile) "r") paths "" subpaths nil key T)
      (while (and key (setq line (read-line f)))
        (if (eq (strcase "SupportPath") (strcase line))
          (progn
                (while (not (eq "" (setq subpaths (read-line f))))
                    (setq paths (strcat paths ";" FirstPath subpaths))
                  (if (not (vl-file-directory-p (strcat FirstPath subpaths))) (vl-mkdir (strcat FirstPath subpaths)))
                );while
                   (setq key nil)
            );progn
          );if
        );while
      (close f)
      (if (not (eq paths "")) (vla-put-supportpath files (strcat (vla-get-supportpath files) paths)) (princ "address SupportPath is not found"))
      );progn
    (princ "\nАдрес SupportPath не найден")
    );if
;стили печати PrinterStyleSheetPath
  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "PrinterStyleSheetPath")))
    (progn (if (not (vl-file-directory-p paths)) (vl-mkdir paths)) (vla-put-PrinterStyleSheetPath files paths))
    (princ "\nАдрес PrinterStyleSheetPath не найден"));if
;папка шаблонов TemplateDwgPath
  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "TemplateDwgPath")))
    (progn (if (not (vl-file-directory-p paths)) (vl-mkdir paths)) (vla-put-TemplateDwgPath files paths))
    (princ "\nАдрес TemplateDwgPath не найден"));if
;шаблон для новых файлов QNewTemplateFile
  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "QNewTemplateFile")))
    (vla-put-QNewTemplateFile files paths) (princ "\nАдрес QNewTemplateFile не найден"));if
;шаблон для новых листов PageSetupOverridesTemplateFile
  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "PageSetupOverridesTemplateFile")))
    (vla-put-PageSetupOverridesTemplateFile files paths) (princ "\naddress PageSetupOverridesTemplateFile не найден"));if
;папка с палитрами ToolPalettePath
  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "ToolPalettePath")))
    (progn (if (not (vl-file-directory-p paths)) (vl-mkdir paths)) (vla-put-ToolPalettePath files paths))
    (princ "\nАдрес ToolPalettePath не найден"));if
;папка для файлов автосохранения AutoSavePath
  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "AutoSavePath")))
    (progn (if (not (vl-file-directory-p paths)) (vl-mkdir paths)) (vla-put-AutoSavePath files paths))
    (princ "\nАдрес AutoSavePath не найден"));if
;папка для файлов кофигураций принтеров PrinterConfigPath
  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "PrinterConfigPath")))
    (progn (if (not (vl-file-directory-p paths)) (vl-mkdir paths)) (vla-put-PrinterConfigPath files paths))
    (princ "\nАдрес PrinterConfigPath не найден"));if
;папка для PMP файлов (настройка границ печати) PrinterDescPath
  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "PrinterDescPath")))
    (progn (if (not (vl-file-directory-p paths)) (vl-mkdir paths)) (vla-put-PrinterDescPath files paths))
    (princ "\nАдрес PrinterDescPath не найден"));if
  );progn
);if
  
;профиль палитры ToolPaletteProfile
  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "ToolPaletteProfile")))
    ;;копируем профиль палитры
    (progn
      ;;создаем временный профиль
    (vla-CopyProfile (setq obj (vla-get-Profiles (vla-get-preferences (vlax-get-acad-object))))
               (setq ActiveProfile (vla-get-ActiveProfile (vla-get-Profiles (vla-get-preferences (vlax-get-acad-object)))))
               (setq temp_profile (strcat "Prof_tmp_" (substr (rtos (getvar "CDATE") 2 8) 10 8))))
    (vla-put-ActiveProfile obj temp_profile)
      ;;импортируем профиль
      (if FullProfileAdress
    (progn
            (vla-ImportProfile obj (vl-filename-base FullProfileAdress)  FullProfileAdress :vlax-true)
        (setq ActiveProfile (vl-filename-base FullProfileAdress))
    );progn
      );if
      ;;удаляем старый профиль палитры
      (vl-file-delete
            (strcat (vl-registry-read (strcat "HKEY_CURRENT_USER\\" (vlax-product-key)) "RoamableRootFolder")
            "support\\Profiles\\" (vl-string-trim "<>" ActiveProfile) "\\Profile.aws")
        );vl-file-delete
      ;;копируем профиль палитры
        (if
      (vl-file-copy
            paths
            (strcat (vl-registry-read (strcat "HKEY_CURRENT_USER\\" (vlax-product-key)) "RoamableRootFolder")
          "support\\Profiles\\" (vl-string-trim "<>" ActiveProfile) "\\Profile.aws")
        );vl-file-copy
      (princ "\nProfile.aws - найден")
      (princ "\nProfile.aws - не найден")
      )
      ;;папка шаблонов для подшивок SheetSetTemplatePath
      (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "SheetSetTemplatePath")))
      (progn (if (not (vl-file-directory-p paths)) (vl-mkdir paths))
      (vl-registry-write (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Profiles\\" ActiveProfile "\\General")
                          "SheetSetTemplatePath" paths));;progn
      (princ "\nАдрес SheetSetTemplatePath не найден"));;if
      ;;возвращаем активный профиль и удаляем временный
      
          (vla-put-ActiveProfile obj ActiveProfile)
          (vla-DeleteProfile obj temp_profile)
        (vla-put-TextEditor files "");Текстовый редактор сбрасываем на встроенный
    );progn
    (princ "\nАдрес ToolPaletteProfile не найден"));if
;загрузка меню MenuFile
  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "MenuFile")))
    (if (vl-file-size paths)
      (if (menugroup (vl-filename-base paths))
        (progn
          (vla-unload (vla-Item (vla-get-MenuGroups (vlax-get-acad-object)) (vl-filename-base paths)))
          (vla-load (vla-get-MenuGroups (vlax-get-acad-object)) paths :vlax-false)
        );progn
          (vla-load (vla-get-MenuGroups (vlax-get-acad-object)) paths :vlax-false)
        );if
      (princ (strcat "\n" paths " - не найден"))
      );
       (princ "\nАдрес MenuFile не найден"));if
;копирование acad.pgp

  (if (setq paths (strcat FirstPath (Kr_FindTextFileNextString (strcat FirstPath PathFile) "ACADPGP")))
    (if (setq FullPGPAdress (findfile paths))
     (if (vl-string-search "ACAD.PGP" (strcase FullPGPAdress))

       (progn
          ;;удаляем старый acad.pgp
          (vl-file-delete
                (strcat (vl-registry-read (strcat "HKEY_CURRENT_USER\\" (vlax-product-key)) "RoamableRootFolder")
                "support\\acad.pgp")
            );vl-file-delete
          ;;копируем acad.pgp
            (if
          (vl-file-copy
                FullPGPAdress
                (strcat (vl-registry-read (strcat "HKEY_CURRENT_USER\\" (vlax-product-key)) "RoamableRootFolder")
                "support\\acad.pgp")
              );vl-file-copy
          (princ "acad.pgp найден")
              (princ "acad.pgp не найден")
        );if
     );progn
       
       (princ (strcat "\nНеправильный формат файла" FullPGPAdress))
      );if
      (princ "\nФайл " FullPGPAdress " не найден")
    )
    (princ "\nАдрес ACADPGP не найден")
    );if

  (princ "\nНастройка завершена")
  (alert "Настройка завершена.\nДля сохранения настроек рекомендуется перезагрузить AutoCAD")
  );progn
    (princ (strcat "\nФайл настроек " FirstPath PathFile " не найден"));
    );if
  (princ)
);defun
Пример файла настроек для чужих компов:

Код:
[Выделить все]
SupportPath
\Library\Parameters\Blocks
\Library\Parameters\Font
\Library\Parameters\Icons
\Library\Parameters\Library_Type
\Library\Parameters\LibraryBlock
\Library\Parameters\Lisp
\Library\Parameters\Lisp\PlineModify
\Library\Parameters\Table

PrinterConfigPath
\Library\Parameters\PlotStyles

PrinterDescPath
\Library\Parameters\PlotStyles

PrinterStyleSheetPath
\Library\Parameters\PlotStyles

TemplateDwgPath
\Library\Parameters\Template\

SheetSetTemplatePath
\Library\Parameters\Template\

QNewTemplateFile
\Library\Parameters\Template\AutoCAD_Beginning_Black.dwt

PageSetupOverridesTemplateFile
\Library\Parameters\Template\AutoCAD_Beginning_Black.dwt

ToolPalettePath
\Library\Parameters\Palette\

AutoSavePath
\AutoSaveAutoCAD

ToolPaletteProfile
\Library\Parameters\Menu\Profile.aws

MenuFile
\Library\Parameters\Menu\Krieger.cui
Пример файла настроек для своего компа:

Код:
[Выделить все]
Profile
\Library\Parameters\Menu\Krieger.arg

AutoSavePath
\AutoSaveAutoCAD

ToolPaletteProfile
\Library\Parameters\Menu\Profile.aws

MenuFile
\Library\Parameters\Menu\Krieger.cui

ACADPGP
__________________
Делай хорошо, плохо само получится.

Последний раз редактировалось Krieger, 02.02.2012 в 14:35. Причина: Что в итоге получилось
Просмотров: 75257
 
Непрочитано 24.01.2009, 13:20
#2
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Очень полезная работа. Продолжай. Это первый шаг для создания программного способа перестройки панелей инструментов.
Supermax вне форума  
 
Непрочитано 24.01.2009, 13:31
#3
Кулик Алексей aka kpblc
Moderator

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


с группировкой палитр я тоже долго воевал, но так и не понял, где оно хранится
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.01.2009, 17:29
#4
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Ба-а-а-лиииин....
Идиотскую ошибочку сделал в коде, поэтому и вылетали gui и pgp.
Так, теперь у меня устанавливаются пути поддержки. А multiload.lsp добавляется в автозагрузку. Только чтобы он добавился в атозагрузку надо сначала выполнить код, потом сразу же перезагрузить кад и выполнить команду appload и снова перезагрузить кад, тогда сработает автозагрузка. Проще вручную добавить...
Насчет настройки интерфейса. Поскольку профиль загрузить не получается (хотя zouss намекал что можно как-то через VBA загрузку сделать, но там я полный нуль), можно попытать рабочие пространства (workspaces), которые цепляются к cui, ну а cui можно грузить через cuiload с filedia = 0. (command "_.cuiload" "d:mycui")

ps Надо было в названии топика использовать слово "Кризис"...
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 24.01.2009, 17:39
#5
Огурец

Profan
 
Регистрация: 27.04.2005
Москва
Сообщений: 6,752
Отправить сообщение для Огурец с помощью Skype™


Дорогие коллеги!

Тема наиважнейшая. Я на неё подписываюсь и буду задавать вопросы "от чайника".

Переход на Windows-7 неизбежен, причём единовременно, причем сразу и у многих. Если удастся преносить профиль работы программными средствами, будет намного легче.
Огурец вне форума  
 
Непрочитано 24.01.2009, 18:44
#6
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Цитата:
...Так, теперь у меня устанавливаются пути поддержки. А multiload.lsp добавляется в автозагрузку. Только чтобы он добавился в атозагрузку надо сначала выполнить код, потом сразу же перезагрузить кад и выполнить команду appload и снова перезагрузить кад, тогда сработает автозагрузка. ...
Не катит!
Никаких перезагрузок када!
Надо в автозагрузку что-то хитрое вставить, чтобы не меняя ее иметь возможность добавлять к аппендиксу автозагрузки дополнительные лиспы.
Типа как я тут с Kpblc-ом химичил. http://forum.dwg.ru/showthread.php?t=27840
Просто надо добавить процедуру загрузки (выполнения) твоего файла multiload.lsp.
Supermax вне форума  
 
Автор темы   Непрочитано 24.01.2009, 19:40
#7
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


В общем с рабочими пространсвами не получается. Так как после загрузки cui нужно вручную перетаскивать раб. простр. из своего cui в основоной. Иначе оно не появляется в списке раб.простр., и такое не прокатит:
Код:
[Выделить все]
(command "_cuiload" "Krieger.cui")
(command "_workspace" "setCurrent" "Krieger_workspace")
Ладно, похоже все равно прийдется cui грузить, во всяком случае пригодится, например для настройки дублклика. Тогда сделаем одноименный mnl файл и кинем его вместе с файлом адаптации. В этом файле пропишем загрузку мультизагрузчика (load "multiload.lsp"). После загрузки нашего cui будет выполнятся и одноименный mnl с каждым открываемым файлом.

А вот с настройкой интерфеса пока не занаю чего делать. Для палитр можно тупо aws файлы копировать...
__________________
Делай хорошо, плохо само получится.

Последний раз редактировалось Krieger, 24.01.2009 в 20:45.
Krieger вне форума  
 
Непрочитано 26.01.2009, 13:14
#8
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Krieger, отличная идея. Было бы не плохо получить универсальную оболочку в которую можно вписать свои настройки (а таких немало). Готов поучаствовать, но толку с меня...Но моральная поддержка гарантируется
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 26.01.2009, 14:01
#9
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Krieger, всё таки, а чем экспорт/импорт профиля не устаривает? Это тоже можно сделать программно. Тоже в итоге всё может свестись к: "копированию (можно ручному) файлов на комп пользователя, запуск када, перетаскиванию в него lsp файлика, перезагрузка када."... можно даже без перезагрузки обойтись.

Все настройки конечно можно сделать программно, но кроме путей ещё немеряно всего установить надо - от цвета экрана до многих системных переменных. Т.е. если идти по твоему пути, то надо иметь текстовые файлы со значениями переменных, цветов экрана, курсора и т.д. и т.п. И соответствеено писать кучу кода для обработки этих файлов и установки всех настроек.

С вариантом экспорта/импорта профиля лисп файл может выглядеть так:
Код:
[Выделить все]
(load "d:\\path\\profile_import.LSP");загрузка функции импорта профиля
(profile_import "Your_Profile" "D:\\path\\Your_Profile.arg" :vlax-true);импорт профиля с установкой его текущим.
Makswell вне форума  
 
Автор темы   Непрочитано 26.01.2009, 14:19
#10
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Цитата:
Сообщение от Makswell Посмотреть сообщение
Krieger, всё таки, а чем экспорт/импорт профиля не устаривает? Это тоже можно сделать программно.
Да я обеими руками за, ты скажи как??? Выложи этот "profile_import.LSP". Я не знаю, поэтому и создал эту тему.
Яж с этого и начал:
Цитата:
Сообщение от Krieger
Но вот палитры добавил, а как их настроить? Т.е. палеток-то там много, нужно создать группу и запихать туда только некоторые. При ручной загрузке профиля все красиво получается и пути устанавливаюся и кнопки на нужном месте. Может как-то можно программно загрузить профиль?
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 26.01.2009, 14:31
3 | #11
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Вот функция импорта профиля. Как она сделана у меня.
Код:
[Выделить все]
;;; ************************************************************************
;;; <<<ОПИСАНИЕ>>>
;;; импорт профиля из arg-файл
;;;
;;; ************************************************************************
;;; <<<ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ>>>
;;; нет
;;;
;;; ************************************************************************
;;; <<<АРГУМЕНТЫ>>>
;;; Profile - новое имя профиля (строка)
;;; RegFile - имя файла с расширением arg
;;; key - включение путей
;;;       :vlax-true - включает в профиль пути поддержки,
;;;       определённые в arg-файле
;;;       :vlax-false - Не включает в профиль пути поддержки,
;;;       определённые в arg-файле
;;;
;;; ************************************************************************
;;; <<<ПРИМЕРЫ>>>
;;; (profile_import "Your_Profile" "D:\\path\\Your_Profile.arg"
;;; :vlax-true)
;;;
;;; ************************************************************************
(defun profile_import
			(Profile_Name	     RegFile
			 key		     /
			 M-vla_PreferencesProfiles
			 ActiveProfile	     temp_profile
			)
  (if (findfile RegFile)
    (progn
      (setq M-vla_PreferencesProfiles
	     (vla-get-profiles
	       (vla-get-Preferences (vlax-get-acad-object))
	     )
	    ActiveProfile
	     (vla-get-ActiveProfile M-vla_PreferencesProfiles)
	    temp_profile
	     (strcat "Prof_tmp_"
		     (substr (rtos (getvar "CDATE") 2 8) 10 8)
	     )
      )
      (vla-CopyProfile M-vla_PreferencesProfiles ActiveProfile temp_profile)
      (vla-put-ActiveProfile M-vla_PreferencesProfiles temp_profile)
      (vla-ImportProfile M-vla_PreferencesProfiles Profile_Name RegFile key)
      (vla-put-ActiveProfile M-vla_PreferencesProfiles Profile_Name)
      (vla-DeleteProfile M-vla_PreferencesProfiles temp_profile)
    )
    (alert (strcat "Файл: " RegFile "\nне найден!"))
  )
  (princ)
)

Последний раз редактировалось Makswell, 26.01.2009 в 14:54. Причина: Изменил код. Так всё таки будет получше.
Makswell вне форума  
 
Непрочитано 26.01.2009, 15:01
#12
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от Krieger Посмотреть сообщение
Но вот палитры добавил, а как их настроить? Т.е. палеток-то там много, нужно создать группу и запихать туда только некоторые. При ручной загрузке профиля все красиво получается и пути устанавливаюся и кнопки на нужном месте. Может как-то можно программно загрузить профиль?
Про палитры я когда-то писал вот здесь. . Может это что-нибудь прояснит?
Makswell вне форума  
 
Непрочитано 26.01.2009, 15:10
#13
acyxou


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


Krieger, а можно специально для меня выдернуть код для прописывания ToolPalettes Paths?...a то я с Lispom не дружу пока Только без внешнего тесткового файла.... проcто чтоб код менял ToolPalettesPath на, например, этот: "\\Server\CAD\Tolpalettes".
Заранее спасибо!
acyxou вне форума  
 
Непрочитано 26.01.2009, 15:14
#14
Кулик Алексей aka kpblc
Moderator

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


В общем, я так понимаю, что надо уже постепенно созревать на публикацию лиспового XML-парсера Правда, он не безгрешен...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.01.2009, 15:26
#15
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Кулик Алексей aka kpblc, было бы небезынтересно посмотреть...
Makswell вне форума  
 
Непрочитано 26.01.2009, 16:19
#16
Кулик Алексей aka kpblc
Moderator

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


Гарантированно работает под AutoCAD 2008 (то есть требует .NET 2.0). Корректно обрабатывает только XML-файлы в кодировке UTF-8.
Создано немного криво, но пока работает...
P.S. Жду разгромной критики
Вложения
Тип файла: rar xml-parser.rar (8.1 Кб, 238 просмотров)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 26.01.2009 в 16:38.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 26.01.2009, 17:07
#17
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Цитата:
Сообщение от Makswell Посмотреть сообщение
Вот функция импорта профиля. Как она сделана у меня.
Спасибо. Работает.
И как я не нашел этот метод ImportProfile... Искал ведь.
Ну вот не поверю, что окромя Makswell никто не знал как профиль импортировать. Теперь все вроде решаемо. И с палитрами тоже, так как их настройки тоже сохраняются в профиле. (Добавлено: не, нифига, не сохраняются)

acyxou,
Код:
[Выделить все]
; (Kr_LoadToolPalettePath "E:\\Library\\Parameters\\Palette\\")
(defun Kr_LoadToolPalettePath (path)
(vla-put-ToolPalettePath (vla-get-files (vla-get-preferences (vlax-get-acad-object))) path)
  )
__________________
Делай хорошо, плохо само получится.

Последний раз редактировалось Krieger, 26.01.2009 в 18:36.
Krieger вне форума  
 
Автор темы   Непрочитано 26.01.2009, 17:11
#18
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
В общем, я так понимаю, что надо уже постепенно созревать на публикацию лиспового XML-парсера Правда, он не безгрешен...
А что ты в xml правишь? Т.е. можно подредатировать aws.
__________________
Делай хорошо, плохо само получится.

Последний раз редактировалось Krieger, 26.01.2009 в 18:38.
Krieger вне форума  
 
Непрочитано 26.01.2009, 18:31
#19
Кулик Алексей aka kpblc
Moderator

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


Я не столько правлю, сколько читаю оттуда (на это и был упор). В частности, настройки табличных стилей, описания объектов и свойств, вносимых в спецификации, настройки слоев (для варианта "по умолчанию", без использования механизма ADT).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.01.2009, 18:35
#20
acyxou


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


Krieger, чет не работает.....
acyxou вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программная настройка AutoCAD, как это делается?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рифмоплетство. Kryaker Разное 554 14.11.2023 11:59
запуск программы из AutoCADа kminas Программирование 19 15.06.2012 13:42
Предложение: Готовые функции Apelsinov Библиотека функций 170 27.06.2010 23:51
Новый драйвер для Phantom AutoCAD OLE/ADI Printer. Как? CyberMan AutoCAD 4 26.04.2009 10:19
Электромагнитная пушка T-Yoke Машиностроение 112 06.08.2008 18:48