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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите создать макрос на кнопку (выделить все по маске и переместить вверх)

Помогите создать макрос на кнопку (выделить все по маске и переместить вверх)

Ответ
Поиск в этой теме
Непрочитано 14.12.2020, 14:05 #1
Помогите создать макрос на кнопку (выделить все по маске и переместить вверх)
ssn
 
Инженер проектировщик (раздел ТМ - фриланс)
 
Геленджик
Регистрация: 06.12.2003
Сообщений: 1,794

помогите пожалуйста макросом.. одна и та же повторяющаяся процедура (для пространства модели)

1. выбрать все блоки, переместить на передний план (draworder)
2. выбрать все размеры, переместить на передний план
3. выбрать все мультилинии, включить фон для текста (background mask), переместить на передний план.

спасибо
Просмотров: 4465
 
Непрочитано 14.12.2020, 16:21
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от ssn Посмотреть сообщение
спасибо
https://forum.dwg.ru/showpost.php?p=...1&postcount=76
Удачи.
Boxa вне форума  
 
Автор темы   Непрочитано 14.12.2020, 18:00
#3
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


спасибо.
ssn вне форума  
 
Непрочитано 16.12.2020, 08:07
2 | 1 #4
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Код:
[Выделить все]
 (defun C:TEST ( / ss1 ss2 ss3 i)
	(vl-load-com)
	; 1. выбрать все блоки, переместить на передний план (draworder)
	(if (setq ss1 (ssget "_X" '((0 . "INSERT")(410 . "Model"))))
		(vl-cmdf "_DRAWORDER" ss1 "" "_F")
	)
	; 2. выбрать все размеры, переместить на передний план
	(if (setq ss2 (ssget "_X" '((0 . "DIMENSION")(410 . "Model"))))
		(vl-cmdf "_DRAWORDER" ss2 "" "_F")
	)
	; 3. выбрать все мультилинии, включить фон для текста (background mask), переместить на передний план.
	(if (setq ss3 (ssget "_X" '((0 . "MULTILEADER")(410 . "Model")))) 
		(progn
			(repeat (setq i (sslength ss3))
				(vla-put-TextBackgroundFill (vlax-ename->vla-object (ssname ss3 (setq i (1- i)))) 1)
			)
			(vl-cmdf "_DRAWORDER" ss3 "" "_F")
		)
	)
	(vl-cmdf "_REGENALL")
)

Последний раз редактировалось skkkk, 17.12.2020 в 01:37.
skkkk вне форума  
 
Непрочитано 16.12.2020, 09:19
#5
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,680


unexpectable turnout!-)
koMon вне форума  
 
Автор темы   Непрочитано 16.12.2020, 11:13
#6
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


Цитата:
Сообщение от skkkk Посмотреть сообщение
Код:
[Выделить все]
 (defun C:TEST ( / ss1 ss2 ss3 i)
	; 1. выбрать все блоки, переместить на передний план (draworder)
	(if (setq ss1 (ssget "_X" '((0 . "INSERT")(410 . "Model"))))
		(vl-cmdf "_DRAWORDER" ss1 "" "_F")
	)
	; 2. выбрать все размеры, переместить на передний план
	(if (setq ss2 (ssget "_X" '((0 . "DIMENSION")(410 . "Model"))))
		(vl-cmdf "_DRAWORDER" ss2 "" "_F")
	)
	; 3. выбрать все мультилинии, включить фон для текста (background mask), переместить на передний план.
	(if (setq ss3 (ssget "_X" '((0 . "MULTILEADER")(410 . "Model")))) 
		(progn
			(repeat (setq i (sslength ss3))
				(vla-put-TextBackgroundFill (vlax-ename->vla-object (ssname ss3 (setq i (1- i)))) 1)
			)
			(vl-cmdf "_DRAWORDER" ss3 "" "_F")
		)
	)
	(vl-cmdf "_REGENALL")
)
спасибо огромное. помчался пробовать

что то пошло не так

Command: TEST
; error: no function definition: VLAX-ENAME->VLA-OBJECT

Последний раз редактировалось ssn, 16.12.2020 в 12:50.
ssn вне форума  
 
Непрочитано 17.12.2020, 01:39
#7
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Цитата:
Сообщение от ssn Посмотреть сообщение
; error: no function definition: VLAX-ENAME->VLA-OBJECT
Забываю порой в кодах для форума вставить подгрузку vla-функций, т.к. она у меня добавлена по умолчанию при запуске Автокада.
Добавил
Код:
Отредактировал #4.
skkkk вне форума  
 
Автор темы   Непрочитано 17.12.2020, 08:30
#8
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


спасибо.
все работает.
ssn вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите создать макрос на кнопку (выделить все по маске и переместить вверх)

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите создать кнопку на переключение слоев. dreammyykeke AutoCAD 2 14.01.2020 11:26
SPDS макрос на кнопку масштаб нужна помощь dextron3 ПО от CSoft 18 20.05.2019 13:37
Помогите создать блок масштабирование на VBA. sashafedorov82 Программирование 4 25.06.2016 14:56
Помогите. В акаде 13: не могу выделить подрезанное растровое изображение Ridder AutoCAD 3 21.05.2015 10:50
Помогите создать лисп выделяющий несколько объектов по шаблону Аристарх Северный LISP 13 15.08.2014 08:03