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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание маскировки с помощью VBA

Создание маскировки с помощью VBA

Ответ
Поиск в этой теме
Непрочитано 04.10.2013, 13:53 #1
Создание маскировки с помощью VBA
neopentan
 
Регистрация: 16.05.2013
Сообщений: 9

Как с помощью VBA создавать маскирующие объекты (многоугольники фонового цвета, которыми можно закрывать объекты рисунка) и включать/отключать их контур?
Просмотров: 3375
 
Непрочитано 04.10.2013, 15:13
1 | #2
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от neopentan Посмотреть сообщение
Как с помощью VBA создавать маскирующие объекты (многоугольники фонового цвета, которыми можно закрывать объекты рисунка) и включать/отключать их контур?
Ну, включить/выключить проще всего, по моему, так:
Код:
[Выделить все]
ThisDrawing.SendCommand "._wipeout" & vbCr & "_f" & vbCr & "_ON" & vbCr
ThisDrawing.SendCommand "._wipeout" & vbCr & "_f" & vbCr & "_OFF" & vbCr
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Автор темы   Непрочитано 04.10.2013, 15:35
#3
neopentan


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


Помогло, спасибо огромное!
neopentan вне форума  
 
Непрочитано 04.10.2013, 16:36
#4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от neopentan Посмотреть сообщение
которыми можно закрывать объекты рисунка
на всякий случай - у всех объектов чертежа есть свойство видимости
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 05.10.2013, 00:14
#5
Do$

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
на всякий случай - у всех объектов чертежа есть свойство видимости
Вот, кстати, всегда было интересно - это свойство доступно только программно или есть возможность пользователю управлять видимостью отдельного объекта? Ну и интересно, использовал ли кто-то изменение видимости отдельных объектов в своей программе? Может быть есть какое-то мнение на основе опыта - стОит это использовать или есть подводные камни?
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 05.10.2013, 09:21
#6
Boxa

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


Я глубоко не копал, попробовал и только.
ИМХО. Сделав программно объект невидимым, вернуть ему видимость можно так же программно, вот только выбрать объект уже не получится (как вариант выбрать все через ctrl-a и очистить ненужное через shift+выбор мышкой), так что приходится перебирать всю базу и делать все объекты видимыми.
Boxa вне форума  
 
Непрочитано 05.10.2013, 14:31
#7
kp+

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


Цитата:
использовал ли кто-то изменение видимости отдельных объектов в своей программе?
В Toolpack'е реализован полный набор команд для работы с видимостью объектов, именно такой, как сказал уважаемый Воха.
Цитата:
Visibility OBV
You can temporarily and permanently blank out objects, regardless of their layer. This tool provides this capability. Each method is explained below.
Blank Used to temporarily blank out objects, they return to the screen on the next redraw.
Redrawall Used to restore all blanked out objects. Redraw works as well.
Hide Used to permanently hide objects, they DO NOT return to the screen on the next redraw, or regen.

UnhideAll Used to restore all hidden objects.
Лично я ими никогда не пользовался, но возможность отключить отдельные объекты включенного слоя может кому-то понадобиться. Например, так можно внедрить в чертеж своеобразный "водяной знак". Не слишком надежный, но с эффектом внезапности

Последний раз редактировалось kp+, 05.10.2013 в 14:44.
kp+ вне форума  
 
Непрочитано 05.10.2013, 16:37
#8
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


У меня есть вспомогательная команда для скрытия выделенных и для показа всех - для трехмерки очень удобно.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 05.10.2013, 16:42
1 | #9
gomer

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


_HIDEOBJECTS и _UNHIDE стандартные команды автокада 2013, раньше не скажу...
gomer вне форума  
 
Непрочитано 07.10.2013, 10:34
#10
kp+

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


в 2010 нет
kp+ вне форума  
 
Непрочитано 08.10.2013, 19:54
#11
Do$

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


То, что есть команды может и хорошо, а может и плохо. Придет чертеж с кучей невидимых объектов, и ломай голову, почему он пустой и весит десятки мб.
Пока не понадобилось ни разу скрывать объекты, но отсутствие стандартного интерфейса для контроля этого как-то напрягало. Слой отключил - это можно проверить в диспетчере слоев, а вот если объект - попробуй догадайся где он.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание маскировки с помощью VBA

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание в КОМПАС-3D конической 3D спирали с помощью сечения и образующей Shura_jj Компас 8 29.07.2009 17:55
Создание пользовательского словаря с помощью VB.NET Sergey Konstruktor .NET 12 29.05.2009 23:11
создание набора с помощью activeX Composter Программирование 3 15.05.2009 00:11
Создание схемы здания в ЛИРЕ с помощью текстового файла kent3000 Лира / Лира-САПР 27 12.12.2005 11:08
Создание инсталятора с помощью NSIS Oracul Программирование 2 25.01.2005 22:16