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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как сделать макрос на расчленение объектов MagiCAD 2011.11/Ru

Как сделать макрос на расчленение объектов MagiCAD 2011.11/Ru

Ответ
Поиск в этой теме
Непрочитано 17.09.2015, 14:20 #1
Как сделать макрос на расчленение объектов MagiCAD 2011.11/Ru
Alex_GSP
 
Генплан
 
Регистрация: 16.03.2014
Сообщений: 33

День добрый!
Есть задача - хочу прописать макрос на кнопку. Нужно по кнопке в текущем чертеже:
- расчленить объекты Magicad;
- очистить прокси (на всякий пожарный);
- purge;
- audit;
- save, выбирая путь через Проводник;
- Undo до момента, перед расчленением объектов Magicad. Насколько понимаю - 1 действие.

Необходимость - один отдел работает на Magicad, остальные без. Вешать всем Enabler админ не видит смысла. Выход - расчленять объекты Magicad для смежных отделов, оптимально "по ходу работы". Ну и ребята тыкаются в кнопки, что то забывают, в итоге то прокси вылезают, то на ошибках чертеж сбоит.

Получается так: ^C^C_magiexp;_all;_EXPLODEALLPROXY;_REMOVEALLPROXY;_purge;_all;;_n;_Audit;_y;_save
Проблема в том, что если добавляю _.undo;1; то сохранение происходит автоматом в Документы. Проводник не выпадает. Подозреваю, что можно как то лиспом это сделать, к сожалению лиспописательством не владею.
Прошу вашего совета. Может быть и алгоритм команд можно как то изменить оптимальнее.
Просмотров: 5541
 
Непрочитано 18.09.2015, 19:57
#2
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Alex_GSP Посмотреть сообщение
Проводник не выпадает. Подозреваю, что можно как то лиспом это сделать, к сожалению лиспописательством не владею.
Даже с помощью лиспа вызвать диалог команды в середине кода не получится. Можно пойти на компромисс - сохранять копию файла с заранее заданным путем/именем файла или вычислять их по какому-то правилу.
Как пример: http://forums.augi.com/showthread.ph...veas-lisp-help
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)

Последний раз редактировалось Do$, 18.09.2015 в 20:07.
Do$ вне форума  
 
Непрочитано 18.09.2015, 22:53
#3
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Alex_GSP Посмотреть сообщение
Вешать всем Enabler админ не видит смысла
А это не прерогатива админа - решать кому и что устанавливать (особенно если вопрос касается проектировщиков).
Цитата:
Сообщение от Alex_GSP Посмотреть сообщение
- save, выбирая путь через Проводник;
Кто-то мешает получить предварительно DWGPREFIX и DWGNAME и скомпоновать имя файла для сохранения?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.09.2015, 03:43
#4
gomer

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А это не прерогатива админа - решать кому и что устанавливать (особенно если вопрос касается проектировщиков).
А чья, как не его???
gomer вне форума  
 
Непрочитано 19.09.2015, 11:59
1 | #5
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от gomer Посмотреть сообщение
А чья, как не его???
Беда, если админ единолично решает, на чем работать сотрудникам) Это на заре появления персоналок админ был царь, бог и господин - сейчас это лишь один из обслуживающих офис сотрудников.
Сергей812 вне форума  
 
Непрочитано 19.09.2015, 13:57
#6
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Беда, если админ единолично решает, на чем работать сотрудникам) Это на заре появления персоналок админ был царь, бог и господин - сейчас это лишь один из обслуживающих офис сотрудников.
Золотые слова. Но не все это понимают.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 19.09.2015, 14:23
#7
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,090


Цитата:
Сообщение от Alex_GSP Посмотреть сообщение
Вешать всем Enabler админ не видит смысла. Выход - расчленять объекты Magicad для смежных отделов, оптимально "по ходу работы". Ну и ребята тыкаются в кнопки, что то забывают, в итоге то прокси вылезают, то на ошибках чертеж сбоит.
Offtop: просто он лентяй. решайте вопрос через высшее руководство при помощи служ. записки, в которой опишите среднее время, непроизводительно затраченное на исправление указанных ошибок и простои при сбоях
Но так ли нужно участие одмина для установки Enabler'а? да, на сайте магикада предлагается скачать инсталяционный файл, установка которого требует адм. прав (скачал, может как-нибудь установлю).
А что входит в состав Enabler'а для Магикада? наверняка всего лишь пара arx- и\или dbx-файлов, которые можно скопировать у соседа и подгрузить через appload. или там все серьезнее?

Последний раз редактировалось kp+, 19.09.2015 в 14:32.
kp+ на форуме  
 
Автор темы   Непрочитано 22.09.2015, 12:51
#8
Alex_GSP

Генплан
 
Регистрация: 16.03.2014
Сообщений: 33


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Кто-то мешает получить предварительно DWGPREFIX и DWGNAME и скомпоновать имя файла для сохранения?
Попробовал, не очень разобрался, как это прикрутить к макросу, чтобы достичь желаемых целей. При вводе команды выдает следующее:

Команда: DWGPREFIX

DWGPREFIX = "C:\Users\хххххххх\Desktop\" (только чтение)

Изменить путь как то не выходит.

В итоге сделал на палитре две кнопки:
1) ^C^C_magiexp;_all;;_EXPLODEALLPROXY;_REMOVEALLPROXY;_purge;_all;;_n;_Audit;_y;_save - расчленяем, чистим, сохраняем. Собственно, только один Enter добавился, после тестирования.
2) _u - стандартный откат.
Все работает.

Уважаемые коллеги, не нужно обижать админов. Не одну фирму сменил, не встретил еще ни одного руководителя, четко представляющего себе, как именно должны быть организованы рабочие места проектировщиков. Что должно быть установлено, а что нет, как это все будет работать. Обычно все спихивается на админа , далеко ходить не нужно - на этом же форуме в ветке Revit админ опрашивал мнения, что лучше ставить - Revit или что то другое.
Но, собственно, постановка вопроса подразумевала помощь с вариантами решения конкретной задачи, а не почему так вышло.
Alex_GSP вне форума  
 
Непрочитано 30.10.2015, 14:02
#9
Эдуард

строительство
 
Регистрация: 16.01.2004
Петербург
Сообщений: 165
<phrase 1=


Цитата:
Даже с помощью лиспа вызвать диалог команды в середине кода не получится
Это действительно так?
Код:
[Выделить все]
 
(defun demo ()
  (alert "Начало кода")
  (initdia 1)
  (command "_saveas" "")
  (while (= (logand (getvar "cmdactive")) 1) (command pause))
  (alert "конец кода после завершения команды")
)
Эдуард вне форума  
 
Автор темы   Непрочитано 03.11.2015, 12:36
#10
Alex_GSP

Генплан
 
Регистрация: 16.03.2014
Сообщений: 33


Цитата:
Сообщение от Эдуард Посмотреть сообщение
Это действительно так?
Код:
[Выделить все]
 
(defun demo ()
  (alert "Начало кода")
  (initdia 1)
  (command "_saveas" "")
  (while (= (logand (getvar "cmdactive")) 1) (command pause))
  (alert "конец кода после завершения команды")
)
Хорошо. Эдуард, стоял вопрос как после _save запустить undo. Команда _saveas из кода сохранит чертеж под новым именем, а предыдущий вариант чертежа закроется. Это не подходит, идея была в очистке и сохранении результатов "на лету", без прекращения работы над текущим чертежом.
Alex_GSP вне форума  
 
Непрочитано 03.11.2015, 15:49
#11
Эдуард

строительство
 
Регистрация: 16.01.2004
Петербург
Сообщений: 165
<phrase 1=


Бред конечно и полное смешение командного и объектного стилей , но работает
Код:
[Выделить все]
 
(defun demo (/ actdoc oldname)
  (setq	actdoc	(vla-get-ActiveDocument (vlax-get-acad-object))
	oldname	(vla-get-FullName actdoc)
  )
  (vla-StartUndoMark actdoc)
  (vla-addline
    (vla-get-ModelSpace actdoc)
    (vlax-3d-point '(0 0))
    (vlax-3d-point '(100 100))
  )
  (initdia 1)
  (command "_saveas" "")
  (while (= (logand (getvar "cmdactive")) 1) (command pause))
  (vla-Activate
    (vla-open (vla-get-documents (vlax-get-acad-object))
	      oldname
    )
  )
  (vla-EndUndoMark actdoc)
  (command "UNDO" "")
)

Эдуард вне форума  
 
Непрочитано 03.11.2015, 21:11
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Не очень хорошая идея, имхо - использовать откат операции. Лучше воспользоваться советами из постов №2 и №3 - сделать сохранение основного файла, из переменных DWGPREFIX и DWGNAME получить имя файла, сделать копию (желательно в отдельную папку, или хотя бы добавить префикс/суффикс к имени файла - чтобы различать), открыть копию (при этом поставить соответствующие переменные DEMANDLOAD, PROXYSHOW, PROXYNOTICE - чтобы не вылетали лишние предупреждения) и ее почистить уже. А потом вернуться обратно в рабочий чертеж после закрытия копии. Тогда при любом сбое в процессе очистки оригинал останется.
Сергей812 вне форума  
 
Автор темы   Непрочитано 04.11.2015, 12:38
#13
Alex_GSP

Генплан
 
Регистрация: 16.03.2014
Сообщений: 33


Видимо действительно идея не очень. К тому же она не вписывается в принятую у нас систему заданий. Под любое задание смежникам пишем бумажку. Буду переделывать кнопку под сейв в задание и последующую очистку, с сохранением рабочей версии. И то правда, пускай задания выдают друг другу, а то сетевики у нас как то это дело не уважают, все бы им побыстрее)). Тему можно закрывать.
Alex_GSP вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как сделать макрос на расчленение объектов MagiCAD 2011.11/Ru

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать макрос для кнопки "зеркало" vasyavip Программирование 2 10.04.2013 23:43
Помогите сделать макрос для автокада Sky_cool Программирование 8 17.01.2009 03:04
как сделать в каде номерацию объектов diek AutoCAD 31 10.04.2008 17:09
Раскажите как сделать макрос (Тахеометр-Autocad) Valer77 Программирование 2 12.07.2006 15:53
Как сделать макрос для файла *.chm Владимир М Программирование 3 16.11.2005 17:56