Перейти к содержанию
Ivanco

автовыполнение комманд при открытии .DWG

Рекомендуемые сообщения

можно ли сделать , чтобы при открытии .dwg выполнялось какое то кол-во штатных комманд? (или LISP их содержащий)

к примеру мне нужно , при открытии .dwg каждый раз выполнять - SPREGENOBJ

 

Можно, запихать это в LISP - (command "_SPREGENOBJ").

но он выполняется при загрузке ПО один раз, а нужно при открытии каждого .DWG в сессии nanoCAD.

 

Как реализовать автовыполнение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При старте NC загружать свою библиотеку (dll). Обрабатывать события.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При старте NC загружать свою библиотеку (dll). Обрабатывать события.

писать же надо. как то попроще не?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно, запихать это в LISP - (command "_SPREGENOBJ").

но он выполняется при загрузке ПО один раз, а нужно при открытии каждого .DWG в сессии nanoCAD.

Как реализовать автовыполнение?

 

А если так?

 

img-2019-02-14-12-28-02.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А если так?

спасибо. можно закрыть тему. вроде только для этой комманды нужно было.пока по крайней мере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно, запихать это в LISP - (command "_SPREGENOBJ").

но он выполняется при загрузке ПО один раз, а нужно при открытии каждого .DWG в сессии nanoCAD.

Как реализовать автовыполнение?

 

А если так?

 

post-23-0-79466400-1550125735.png

ТС просит _SPREGENOBJ - СПОБНОВОБ

а галка в настройках включает _SPREGEN - СПОБНОВИТЬ

одно и то же?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно ли сделать , чтобы при открытии .dwg выполнялось какое то кол-во штатных комманд? (или LISP их содержащий)

к примеру мне нужно , при открытии .dwg каждый раз выполнять - SPREGENOBJ

 

Можно, запихать это в LISP - (command "_SPREGENOBJ").

но он выполняется при загрузке ПО один раз, а нужно при открытии каждого .DWG в сессии nanoCAD.

 

Как реализовать автовыполнение?

 

1. Грузим COM

(vl-load-com)

 

2. Создаём функцию-приёмник реактора

(defun qqq (a b / ) (alert "documentQQQreated"))

 

3. Привязываем реактор, функция qqq будет вызываться на каждом открытии или создании документа

(setq NewDocQQQ (VLR-DocManager-Reactor nil (list '(:VLR-documentCreated . qqq))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно ли сделать , чтобы при открытии .dwg выполнялось какое то кол-во штатных комманд? (или LISP их содержащий)

к примеру мне нужно , при открытии .dwg каждый раз выполнять - SPREGENOBJ

 

Можно, запихать это в LISP - (command "_SPREGENOBJ").

но он выполняется при загрузке ПО один раз, а нужно при открытии каждого .DWG в сессии nanoCAD.

 

Как реализовать автовыполнение?

 

1. Грузим COM

(vl-load-com)

 

2. Создаём функцию-приёмник реактора

(defun qqq (a b / ) (alert "documentQQQreated"))

 

3. Привязываем реактор, функция qqq будет вызываться на каждом открытии или создании документа

(setq NewDocQQQ (VLR-DocManager-Reactor nil (list '(:VLR-documentCreated . qqq))))

работает :) то, что нужно, спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Кстати, а можно где-нить эту последовательность подглядеть. А то охота чуть дополнить команды SAVE и иже с ней, но страшноооо... :wacko:

Изменено пользователем Mитька

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Кстати, а можно где-нить эту последовательность подглядеть. А то охота чуть дополнить команды SAVE и иже с ней, но страшноооо... :wacko:

чтобы ИЗМЕНИТЬ поведение команды, нужно действитльно знать исходный код. Т.е. это для ПО не возможно.

однако, существует API, а в нем существует возможность , на определеные события/команды (например SAVE) "вешать" реакторы, т.е. набор действий происходящих при определенной команде.

т.е. это не модификация команды (она отработает как есть) , а скорее ее дополнение , как в примере на LISP.

 

но страшноооо... :wacko:

что именно :blink: поставили рядом на виртуалке и ковыряйте хоть что. жестко что то сломать, это надо явно удалить какие нибудь файлы ПО или часть реестра, что в принципе решаемо переустановкой.Смелее вообщем))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>А то охота чуть дополнить команды SAVE и иже с ней, но страшноооо..

чего там...

на лиспе дополняешь, обзываешь МИТЬКА_SAVE

(defun C:МИТЬКА_SAVE ()  
;чета делает
 )  

прикручиваешь к иконке с дискеткой и наслаждаешься

Изменено пользователем doctorraz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как сделать Митька_SAVE я представляю. Так я ж хочу существующую дополнить. Т.е.

(defun C:SAVE () 
;чета делает
;существующий непросранный механизм сохранения со всеми возможнми деталями
;чета делает
 )

А для этого надо понимать как этот самый механизм выглядит. В формате кода.

Изменено пользователем Mитька

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

> Чтобы ИЗМЕНИТЬ поведение команды, нужно действительно знать исходный код.

Да, о чём я и говорил. Невозможно...? - ну сомнительно, вряд ли код команды SAVE дохрена мудрёный (и не факт, что вообще секретный). Хотя могу и ошибаться... Просто я не ковырялся. Это так, фантазии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как сделать Митька_SAVE я представляю. Так я ж хочу существующую дополнить.

 

Хотя тут я легко могу тупить и просто не понимать, что написанное вами есть решение всех бед.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если чо их аж три

SAVE, QSAVE, SAVEAS

еще есть WBLOCK, хитрое такое сохранение

какой из них ты чего изменить желаешь?

ЗЫ имха нехватка функционала, следствие слабого знания матчасти

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если чо их аж три

SAVE, QSAVE, SAVEAS

еще есть WBLOCK, хитрое такое сохранение

какой из них ты чего изменить желаешь?

 

Я представляю, что она не одна. В идеале - все 3, но и базовая вполне устроит.

 

ЗЫ имха нехватка функционала, следствие слабого знания матчасти

 

Я хочу, чтобы при каждом сохранении любого файла, с любого компьютера нанокад пользователя писал ему "Пока-пока" (или играл на дудочке/пел песенку/делал всё зелёненьким и т.д. - всё, что мне заблагорассудится), автоматически (см. тему про управляющий всем NSF-файл...)

Какую область функционала платформы я при этом своём желании не учитываю...?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>но и базовая вполне устроит.

какая из них базовая?

>Я хочу, чтобы при каждом сохранении любого файла, с любого компьютера нанокад пользователя писал ему "Пока-пока" (или играл на дудочке/пел песенку/делал всё зелёненьким и т.д. - всё, что мне заблагорассудится)

подписываешься на событие (в данном случае ...BeginSave) и играешь на дудочке

>Какую область функционала платформы я при этом своём желании не учитываю...?

очевидножэж ту о которой не знаешь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>Какую область функционала платформы я при этом своём желании не учитываю...?

очевидножэж ту о которой не знаешь

Содержательно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Содержательно

а что ты хотел, я не требовательный, мне не надо, что бы CAD программа играла на дудочке, достаточно автоматизации проектирования (по минимуму)

------------------

выше написал жэж, что не обязательно лезть внутрь движка если достаточно что бы какие то действия выполнялись после других (открытие, сохранение и т.п.)

достаточно подписаться на это событие, а как .. лисп, мультикад, Net, VBA зависит от того чем лучше владеешь

вот например события VBA

 

 

post-64306-0-01539200-1551862915.png

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...