Drive geometry для угла

Программирование для CATIA.

Drive geometry для угла

Сообщение 3Dge » 15 окт 2010 15:49

Есть 2 линии. Хочу поставить между ними постоянный угол.

Пробовал вариант такой :

Set CATIA = GetObject(, "CATIA.Application")
Set Drawingdocument1 = CATIA.ActiveDocument
Set drawingSheets1 = Drawingdocument1.Sheets
Set DrawingSheet1 = drawingSheets1.ActiveSheet
Set MyDrawingViews1 = DrawingSheet1.Views
Set DrawingView1 = DrawingSheet1.Views.ActiveView
Set myFactory2D = DrawingView1.Factory2D

... Создаём линии...(Line_Base, Line_Sh3)

iType1 = catDimAngle

Dim myElements101
myElements101 = Array(Line_Base, Line_Sh3)
Dim selpoints101
selpoints101 = Array(0, 0, 0, 0)
Dim MyDimension71 ' As DrawingDimension
Set MyDimension71 = DrawingView1.Dimensions.Add(iType1, myElements101, selpoints101, catDimVert)
MyDimension71.ValueOrientation = catVertical
MyDimension71.Name = "MyDimension71"

Далее хотел командами задать угол

CATIA.StartCommand "Definition"
CATIA.StartCommand "Drive geometry"

но это не прокатывает

есть мысль что можно задать жёсткий угол с помощью Add2 :

Set MyDimension71 = DrawingView1.Dimensions.Add2(iType, myElements101, selpoints101, iLDCRefElem, iLDCRefAngle )

но не знаю что задавать в 2 последних элемента - iLDCRefElem и iLDCRefAngle . VB ругается если задаю в качестве iLDCRefElem какую либо линию и в качетве iLDCRefElem угол в радианах.
3Dge
Новичок
Новичок
 
Сообщения: 30
Images: 0
Зарегистрирован: 14 дек 2009 12:58
Откуда: СПб

Re: Drive geometry для угла

Сообщение deNSe » 16 окт 2010 14:58

попробуйте через Parameters...
know how vs how know
Аватара пользователя
deNSe
Участник
Участник
 
Сообщения: 115
Зарегистрирован: 24 сен 2010 19:00

Re: Drive geometry для угла

Сообщение 3Dge » 18 окт 2010 09:49

deNSe писал(а):попробуйте через Parameters...


Если можно поподробней.
3Dge
Новичок
Новичок
 
Сообщения: 30
Images: 0
Зарегистрирован: 14 дек 2009 12:58
Откуда: СПб

Re: Drive geometry для угла

Сообщение deNSe » 18 окт 2010 18:52

Ну, например, вот так:
Код: Выделить всё
Set drawingDocument1 = CATIA.ActiveDocument

Set drawingSheets1 = drawingDocument1.Sheets

Set drawingSheet1 = drawingSheets1.ActiveSheet

Set drawingViews1 = drawingSheet1.Views

Set drawingView1 = drawingViews1.Add("AutomaticNaming")

Set drawingViewGenerativeBehavior1 = drawingView1.GenerativeBehavior

drawingViewGenerativeBehavior1.DefineFrontView 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000

drawingView1.x = 104.678017

drawingView1.y = 187.331406

Dim double1
double1 = drawingSheet1.Scale

drawingView1.Scale = 1.000000

drawingView1.Activate

Set Fact2D =drawingView1.Factory2D

Set Line1 = Fact2D.CreateLine(50, 10, 150, 10)

Set Line2 = Fact2D.CreateLine(50, 10, 120, 100)

Dim iType
iType = catDimAngle

Dim myElements1(1)

myElements1(1) = Array(Line1,Line2)

Dim selpoints(3)

selpoints(3) = Array(150, 10, 120, 100)

Set MyDimension1 = drawingView1.Dimensions.Add(iType, myElements1(1), selpoints(3),catDimAuto)

Set DrwParams = drawingDocument1.Parameters

Set DrwDimVal =  DrwParams.Item("Drawing\Sheet.1\Angle.2\Angle")

DrwDimVal.Value = 45.0



но здесь, сами видите, проблема - как этот параметр найти?..
know how vs how know
Аватара пользователя
deNSe
Участник
Участник
 
Сообщения: 115
Зарегистрирован: 24 сен 2010 19:00

Re: Drive geometry для угла

Сообщение 3Dge » 20 окт 2010 09:02

deNSe писал(а):Ну, например, вот так:
Код: Выделить всё

Set DrwParams = drawingDocument1.Parameters

Set DrwDimVal =  DrwParams.Item("Drawing\Sheet.1\Angle.2\Angle")

DrwDimVal.Value = 45.0





Да ему не нравиться то что в скобках после Item. Если вставить цифру 2 как в примере CAA v5 Automation, он не ругается , но и ничего не происходит.
Будем думать дальше...
3Dge
Новичок
Новичок
 
Сообщения: 30
Images: 0
Зарегистрирован: 14 дек 2009 12:58
Откуда: СПб

Re: Drive geometry для угла

Сообщение deNSe » 20 окт 2010 18:49

так у Вас и мой макрос не отрабатывается? (лист д.б. пустой)
Вложения
Macro2.rar
(504 байт) Скачиваний: 491
know how vs how know
Аватара пользователя
deNSe
Участник
Участник
 
Сообщения: 115
Зарегистрирован: 24 сен 2010 19:00

Re: Drive geometry для угла

Сообщение Artem » 21 окт 2010 13:12

Definition это "FrmActivate" и вызывается только через панель и c:, а вот "Drive geometry" такой команды вроде как нет. Можно попробовать для решения этой проблемы sendmessage(но это VBA) viewtopic.php?f=140&t=1558 (сценарий см. последний пост). А как найти в параметрах думаю не проблема на вскидку MyDimension1.Name из вашего примера встречается в DrwDimVal.Name в цикле нашли и все. Еще у MyDimension1.GetValue есть параметр Value, но к сожалению Read Only.
to deNSe
А как Drive Geometry поставил? Без нее параметр не поменяешь.
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Drive geometry для угла

Сообщение deNSe » 21 окт 2010 19:46

23Dge
этот скрипт работает, проверено на V5R19 SP7 (с V5R17 SP8 - затык, выдает sublist.Count = 1)
2Artem
по умолчанию
Вложения
Macro3.rar
(521 байт) Скачиваний: 505
know how vs how know
Аватара пользователя
deNSe
Участник
Участник
 
Сообщения: 115
Зарегистрирован: 24 сен 2010 19:00

Re: Drive geometry для угла

Сообщение 3Dge » 22 окт 2010 12:54

У меня R19 sp6. Макрос останавливается на DrwDimVal.Value = 45.0. Пока угол не меняет.
3Dge
Новичок
Новичок
 
Сообщения: 30
Images: 0
Зарегистрирован: 14 дек 2009 12:58
Откуда: СПб

Re: Drive geometry для угла

Сообщение deNSe » 22 окт 2010 19:10

а сообщение об ошибке не выдает? проверьте настройки Вашего стандарта:

PS: приложил еще один макрос - очищен от "мусора"
Вложения
DrwDimPrmHndl.rar
(489 байт) Скачиваний: 497
know how vs how know
Аватара пользователя
deNSe
Участник
Участник
 
Сообщения: 115
Зарегистрирован: 24 сен 2010 19:00

Re: Drive geometry для угла

Сообщение 3Dge » 25 окт 2010 10:29

to deNSe :

Не получается. Изменил в xml файле все driving с No на Yes. Тоже не помогло.
Вложения
3Dge
Новичок
Новичок
 
Сообщения: 30
Images: 0
Зарегистрирован: 14 дек 2009 12:58
Откуда: СПб

Re: Drive geometry для угла

Сообщение deNSe » 25 окт 2010 22:34

IMHO, имеет смысл обновить до SP7
know how vs how know
Аватара пользователя
deNSe
Участник
Участник
 
Сообщения: 115
Зарегистрирован: 24 сен 2010 19:00

Re: Drive geometry для угла

Сообщение deNSe » 26 окт 2010 20:01

проверил на V5R19 SP4 - "прокатывает"... Обращаюсь к ув. Форуму - выложенный макрос у кого-то еще работает?
PS: чертеж д.б. вновь созданным или обновленным по уточненному стандарту (см. выше)
know how vs how know
Аватара пользователя
deNSe
Участник
Участник
 
Сообщения: 115
Зарегистрирован: 24 сен 2010 19:00

Re: Drive geometry для угла

Сообщение 3Dge » 28 окт 2010 14:06

Проверил - макрос работает, хотя сначала была ошибка. Проверял на v5r19sp6 и на v5r19sp0. Спасибо.
3Dge
Новичок
Новичок
 
Сообщения: 30
Images: 0
Зарегистрирован: 14 дек 2009 12:58
Откуда: СПб


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0