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

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

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

Ответ
Поиск в этой теме
Непрочитано 10.03.2010, 17:42 #1
Как использовть варианты и безопасные массивы в ActiveX?
solo123
 
Регистрация: 19.08.2009
Сообщений: 91

Может кто нибудь поможет,в таком вопросе:
Не могу понять, как оформить трёхмерную точку в виде варианта с помощью функции vlax-3d-point,
мне надо копировать объект с помощью метода Move, как это правильно написать?
Просмотров: 2650
 
Непрочитано 10.03.2010, 20:52
#2
Дима_

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


Код:
[Выделить все]
(vla-move(vla-copy (vlax-ename->vla-object (entlast))) (vlax-3d-point 
(getpoint)) (vlax-3d-point (getpoint)))
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 11.03.2010, 07:14
#3
solo123


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


Спасибо за ответ! Я неправильно написал Move не копировать, а переместить, проблема такая: надо переместить Box (шпонку ggg3) на противоположную сторону детали, думаю можно и методом зеркала, только как это правильно прописать? Заранее благодарен за помощь.
Код:
[Выделить все]
( DEFUN c:portal0 ( / x1 x2 x3 oky okx1 center1 center2 center3 center4 ggg ggg1 ggg2 ggg3 )
(vl-load-com)
(setq acad_application (vlax-get-acad-object));читает указатель корнегого объекта иерархии акад
(setq active_document (vla-get-ActiveDocument acad_application));Читает укзатель открытого документа
(setq model_space (vla-get-ModelSpace active_document))
(setq x1 (getreal "\nШирина проема: "))
(setq x2 (getreal "\nВысота проема: "))
(setq x3 (getreal "\nГлубина проема: "))
(setq center1 (vlax-3D-point '(0.0 0.0 0.0)));центр бокса 
(setq oky (-(/ x2 2.0) 24.0));определение координаты y расположения центра вычитаемой шпонки
(setq ggg (vla-Addbox model_space center1 x3 x2 36.0));создание бокса
(setq center2 (vlax-3D-point 0.0 oky 14.5));центр вычитаемой шпонки
(setq ggg1 (vla-Addbox model_space center2 x3 10.0 7.0));создание вычитаемой шпонки
(vla-Boolean ggg acSubtraction ggg1);булева вычитание
(setq okx1 (-(/ x3 2.0) 5.0));определение координаты x вычитаемого бокса
(setq center3 (vlax-3D-point okx1 0.0 13.0));центр вычитаемого бокса
(setq ggg2 (vla-Addbox model_space center3 10.0 x2 10.0));создание вычитаемого бокса
(vla-Boolean ggg acSubtraction ggg2);булева вычитание
(setq center4 (vlax-3D-point okx1 0.0 6.0));центр второй вычитаемой шпонки
(setq ggg3 (vla-Addbox model_space center4 30.0 x2 10.0));создание второй боковой вычитаемой шпонки
(vla-Copy ggg3)
(vla-Boolean ggg acSubtraction ggg3));булева вычитание

Последний раз редактировалось Кулик Алексей aka kpblc, 11.03.2010 в 08:32.
solo123 вне форума  
 
Непрочитано 11.03.2010, 10:50
#4
Дима_

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


совет 1 - последовательные setq можно заменить на 1, то есть:
Код:
[Выделить все]
(setq x1 (getreal "\nШирина проема: "))
(setq x2 (getreal "\nВысота проема: "))
(setq x3 (getreal "\nГлубина проема: "))
то-же самое что:
Код:
[Выделить все]
(setq x1 (getreal "\nШирина проема: ")
      x2 (getreal "\nВысота проема: ")
      x3 (getreal "\nГлубина проема: "))
второе если ты знаешь (а ты знаешь) ширину детали, то тебе совсем не важно за какую точку цепляться при перемещении, то есть есть если надо передвинуть шпонку влево на (допустим) ширину детали-ширина шпонки то указывай любую начальную точку (для удобства (0 0 0)) и "пляши" относительно ее - (vla-move hponka (vlax-3d-point '(0 0 0)) (vlax-3d-point (list xxx 0 0))).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как использовть варианты и безопасные массивы в ActiveX?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
на злобу дня !! zaza-noza Разное 63 22.05.2009 15:10
Мониторы LCD CRT Разное 94 17.06.2008 10:51
Как отличить блок от обычного примитива (ActiveX) ? Matt Программирование 2 21.04.2007 00:37
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46
БРЕД СИВОЙ КОБЫЛЫ Kryaker Разное 1876 29.12.2006 23:41