Попытка создания настройки Autocad с нуля до рабочей станции

Автор Тема: Попытка создания настройки Autocad с нуля до рабочей станции  (Прочитано 12843 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Peacemaker_kissАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 76
  • Карма: 0
  • Воспитываю из него программиста
Данное развертывание и адаптация создана для небольшой группы проектировщиков
Преследую цель получить по заслугам массу здоровой критики с целью улучшения своих наработок! Отдельная благодарность Алексею Кулику за идею, Кириллу за помощь, Александру Ривилису за Эврику
Ниже выкладываю коды, первый прописываем в файл "C:\Program Files\Autodesk\AutoCAD 2015\Support\en-us\acad2015doc.lsp",  а именно:

Код - Auto/Visual Lisp [Выбрать]
  1. (setvar "trustedpaths" "\\\\192.168.1.201\\projects\\!ШАБЛОНЫ\\Сетевые настройки Autocad")
  2. (load "\\\\192.168.1.201\\projects\\!ШАБЛОНЫ\\Сетевые настройки Autocad\\acad_net_start.lsp")
Сие две строки по сути можно просить прописать сиса, но они часто кладут на все изыски (мой точно) поэтому, если нет сапр-менеджера в фирме то самому
 
Следующий код зашит, как следствие, в файл acad_net_start.lsp

 
 
Код - Auto/Visual Lisp [Выбрать]
  1. (defun paths ( / acadObj preferences )
  2.   (vl-load-com)
  3.   (vl-mkdir "d:\\Temp_user")
  4.        (setq acadObj (vlax-get-acad-object))
  5.   (setq preferences (vla-get-Preferences acadObj))
  6.   (vla-put-TemplateDwgPath (vla-get-Files preferences) "\\\\192.168.1.201\\projects\\!ШАБЛОНЫ\\Сетевые настройки Autocad")
  7.   (vla-put-AutoSavePath (vla-get-Files preferences) "d:\\Temp_user")
  8.   (vla-put-TempFilePath (vla-get-Files preferences) "d:\\Temp_user")
  9.   (vla-put-TempXrefPath (vla-get-Files preferences) "d:\\Temp_user")
  10.     (vla-put-toolpalettepath (vla-get-Files preferences) "\\\\192.168.1.201\\projects\\!ШАБЛОНЫ\\сетевые настройки Autocad\\Палитры")
  11.     (vla-put-qnewtemplatefile (vla-get-files preferences) "\\\\192.168.1.201\\projects\\!ШАБЛОНЫ\\сетевые настройки Autocad\\_шаблон_ГОСТ.dwt")
  12.      (setvar "trustedpaths" "\\\\192.168.1.201\\общая_папка\\05_Лазарев\\Макросы\\svtstr01")
  13.   (setvar "filedia" 1)
  14.   (setvar "pickfirst" 1)
  15.   (setvar "isavebak" 1)
  16.   (setvar "isavepercent" 0)
  17.   (setvar "savetime" 10)
  18.   (command "wsautosave" 0)
  19.   (command "newtabmode" 0)
  20.   (command "qpmode" "1")
  21.   (command "gridmode" "0")
  22.   (command "cursorbadge" 1)
  23.   (command "_.commandline")
  24.   (command "_.purge" "_a" "*" "_n")
  25.   (command "_.audit" "_y" )
  26.   (command "wsautosave" 0)
  27.       (setq _cond (menugroup "2007_2009"))
  28.   (if (= _cond "2007_2009") (princ "Файл адаптации загружен") (command "_.cuiload" "//192.168.1.201/projects/!ШАБЛОНЫ/Сетевые настройки Autocad/working.cuix"))
  29.    
  30.  
  31. (princ))
  32. (paths)

Версия 1.1

По сути все, если кому нужно могу выслать на почту шаблон, созданный согласно ГОСТ 21.1101, который включает шрифт, размер, но он не претендует на совершенство, создавался в качестве тестового, также могу отправить файл адаптации.

P.S. Комментарии к сообщению выложил лишь для тех, кто познает автокад, просвещенным все понятно будет без слов
P.P.S. Как говорит один мой знакомый программист "....Аппетиты растут..." И это правда, у меня появилась галактическая мысль написать код, язык не важен но лучше lisp конечно, который пропишет в файл acad2015doc.lsp эти две волшебные строчки без помощи пользователя, сиса и.т.д. то есть разворачивается где-то в сети автокад, звонок сапр-менеджеру он запускает код-мониторинг машин в сети-поиск файла acad2015doc.lsp на машине - прописывание строк в конце тела файла....Если есть идеи пишите, жгучее желание это реализовать бросит меня на амбразуры форумов и учебники Полищука, но помощь в этом знающих людей сэкономит мое время, а что может быть дороже времени.
« Последнее редактирование: 17-10-2014, 19:55:35 от Peacemaker_kiss »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Хочешь критики? Она есть у меня!  ;)
1) Создавай на форуме темы в правильном разделе. Это вторая, которую мы переносим.
2) Оформляй код с тэгами форматирования. Например,



3) По существу темы критика будет позднее.
« Последнее редактирование: 10-10-2014, 17:20:53 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Лучше все пути сделать без использования русских символов и пробелов - так надежнее.
"\\\\192.168.1.201\\projects\\!ШАБЛОНЫ\\Сетевые настройки Autocad" => "\\\\192.168.1.201\\projects\\!TEMPLATES\\AutoCADNetworkSettings"А по коду - если работает и всех устраивает, то и хорошо!
Хотя стоп...
PURGE и AUDIT при открытии чертежа - это не очень хорошо. К примеру, создаем новый чертеж на основе шаблона. Шаблон пустой, но в нем настроены различные стили, типы, слои, которые пока не используются. А раз они не используются - значит их PURGE удалит. AUDIT может выполняться довольно продолжительное время, что может значительно увеличить и так не маленькое время открытия  большого чертежа (например, с кучей внешних ссылок).
Изменение глобальных настроек AutoCAD при открытии каждого чертежа (ибо acad2015doc.lsp) - не самое рациональное решение. (Бедная, бедная переменная TRUSTEDPATHS - зачем ее так часто переписывать? :))
2015 версия? Тогда вместо COMMAND лучше в этом случае использовать COMMAND-S.

P.S. Александр Наумович, а нельзя ли кнопку "Код" и выпадающий список "Код" как-то рядышком сделать? А то так как сейчас совсем интуитивно-непонятно :)
« Последнее редактирование: 12-10-2014, 11:27:46 от Загорулькин Дмитрий »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Лучше все пути сделать без использования русских символов и пробелов - так надежнее.
Согласен на 100%.
Бедная, бедная переменная TRUSTEDPATHS - зачем ее так часто переписывать? :))
Это не самое худшее. Peacemaker_kiss совсем забыл, что в этой переменной уже что-то может быть и просто затирает то, что там было.
Тогда вместо COMMAND лучше в этом случае использовать COMMAND-S
Согласен на 100%, хотя если не только 2015, то придется как минимум проверить версию и вызвать в зависимость от этого COMMAND или COMMAND-S
Теперь еще ряд существенных замечаний к коду Peacemaker_kiss:
1) На всех PC, на которых будет использоваться этот код диск D: это винчестер (а не скажем CD/DVD) и у пользователя есть доступ для записи/создания каталогов?
2) Кучу (command) в твоём коде можно заменить на (setvar)
3) За это убил бы:
Код - Auto/Visual Lisp [Выбрать]
  1.   (command "_.purge" "_a" "*" "_n")
Таким образом, как писал уже Загорулькин Дмитрий, ты выкидываешь все неиспользуемые описания блоков, типов линий, текстовые стили, которые с большой вероятностью попали в чертеж из шаблона.
_AUDIT и _PURGE должны выполняться пользователем самостоятельно и осмысленно.
P.S. Александр Наумович, а нельзя ли кнопку "Код" и выпадающий список "Код" как-то рядышком сделать? А то так как сейчас совсем интуитивно-непонятно :)
Я посмотрю, хотя скорее всего этого делать не буду, т.к. накатывание в будущем поверх этой версии форума новой в лучшем случае вернет всё в исходное состояние, а в худшем всё испортит.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Если есть идеи пишите, жгучее желание это реализовать бросит меня на амбразуры форумов и учебники Полищука, но помощь в этом знающих людей сэкономит мое время, а что может быть дороже времени.
Внимательнее нужно быть: Полещук Николай Николаевич
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Peacemaker_kissАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 76
  • Карма: 0
  • Воспитываю из него программиста
Да, я конечно, при использовании команды purge при каждом запуске программы, не мог не заметить, что она начисто все удаляет. Я и заметил, так как у меня есть свои шаблоны которые не стоит вычищать настолько глубоко. Поэтому я создал шаблон в котором присутствуют все необходимые описания для того, что начать проект, а что касается описаний блоков, типов линий и.т.д. то никто не отменял палитру инструментов, которую можно умело настроить, привязав ее к единому файлу всех блоков, требуемых: а.)каждому конкретному юзеру, б) группе разработчиков, проектировщиков. Над нее я еще не начал работать, но создать ее вполне реально, более того ее можно вшить в файл адаптации и при открытии файла у проектировщика всегда будет необходимый набор инструментов. По поводу оформления всё уяснил, это была первая публикация, блин пошёл комом, но я его проглотил и впредь все будет согласно регламента. Так как я человек в деле новый то обязательно изучу что из Command можно было заменить setvar, о моем убийстве не может идти и речи, я денег должен). Про Николая Полещука конечно прощу прощенья, это действительно был провал. Однако просьба к Александру помочь с той проблемой которую я поднимал в постскриптуме относительно копировании. Вопрос к Дмитрию, какая проблема с работой над файлом acaddoc??? Спасибо всем за критику, жду еще, благодаря ей уже умная мысль родилась

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Однако просьба к Александру помочь с той проблемой которую я поднимал в постскриптуме относительно копировании.
Если бы ты перевел то, что тебе нужно со своего на более-менее литературный русский, то я возможно смог бы понять о чем идет речь и как можно тебе помочь. ;)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Peacemaker_kissАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 76
  • Карма: 0
  • Воспитываю из него программиста
Литературный - это тот, на котором стараюсь общаться, а в предыдущих сообщениях решил внести некоторую ноту иронии и здорового юмора. А теперь серьезно. Итак в чем смысл моей работы, это унификация работы всех проектировщиков согласно моего видения рабочего процесса, по причине того, что их наставник как в вопросах проектирования, так и в вопросах автокада. Скажем, я на своей машине в файле acad2015doc.lsp прописал эти две строки. А теперь я хочу написать макрос, который анализирует машины в сети, при наличии на ней данного файла прописывает в него эти две строки. Я хочу написать на lispe, или vba. Вот такая задача.  К изучению языков семейств С я приступаю во ВТУЗУ с ноября, на них я конечно очень уповаю, но lisp никогда не брошу ибо он прост и легок и я считаю, что под автокад нужно писать в нескольких языках и объединять их в некоторые группы для выполнения тех или иных задач, как вы считаете, это разумно?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
А теперь я хочу написать макрос, который анализирует машины в сети, при наличии на ней данного файла прописывает в него эти две строки. Я хочу написать на lispe, или vba. Вот такая задача.
Это не те языки, на которых это следует делать. И первый и второй работают изнутри AutoCAD. Тебе же для этой цели AutoCAD совершенно не нужен. Выполнить такое обновление по сети достаточно сложно, т.к. нужно знать API для обнаружения PC в сети, знать API для работы с удаленными реестрами (чтобы найти установленные AutoCAD), иметь права доступа для записи в нужные разделы диска/реестра.
Думаю что тебе нужно выбирать между C++ и C#. Писать придется exe-файл, который админ должен будет по твоей просьбе запустить на всех необходимых PC. Как это сделать - это будет уже его проблемой.
Возможен второй вариант - админ находит на всех PC все файлы acad2015doc.lsp и производит добавление в конец твоего кода. Это так же уровень его компетенции.
Только учти. Любая твоя ошибка в коде и вполне возможно, что AutoCAD у пользователя работать не будет, или будет работать как-то не так.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
я считаю, что под автокад нужно писать в нескольких языках и объединять их в некоторые группы для выполнения тех или иных задач, как вы считаете, это разумно?
Я почти согласен. Разделение не на уровне задач, а на уровне удобства и простоты использования. Скажем сделать красивый и удобный пользовательский интерфейс на lisp очень сложно, а иногда и невозможно. Тут C++/C# обладают значительно большими возможностями.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Вопрос к Дмитрию, какая проблема с работой над файлом acaddoc???
Никакой проблемы. Просто есть еще файл acad2015.lsp, он загружается один раз в сеансе. Все глобальные настройки, не относящиеся к отдельному чертежу, лучше делать в нем.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Сугубо ИМХО...
Иногда (у меня лично - так всегда) приходится грузить подобный код внутрь каждого документа: пользователи бывают сильно разные, в том числе и такие, которые сначала жмут на кнопки, а потом уже думают (если успевают ;))
Далее. Я бы не стал в принципе использовать абсолютные пути: есть вариант загнать подобные данные внутрь реестра и читать их оттуда. Работа с реестром - ИМХО, опять же,- намного проще централизовать.
На самом деле решить подобную задачу можно несколькими способами, и использование acad*.lsp в этом отношении далеко не единственный путь :)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Peacemaker_kissАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 76
  • Карма: 0
  • Воспитываю из него программиста
Обновил программку, стала изящнее и более теплый прием пользователя, опробировал на трех машинах все прекрасно работает