Доступ к некоторым объектам

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

Доступ к некоторым объектам

Сообщение nokal » 22 окт 2008 22:08

Так вот, рылся я сегодня в файлике CAA V5 Visual Basic help в иерархии объектов кати, и так и не нашел некоторые вещи...

Во первых у меня есть переменная(параметр) в котором забыто множество значений из таблицы, так вот, с помощью какого объекта можно получить доступ к i-ому значению переменной.

Во вторых мне надо программно записать в файл значение массы тела. С помощью какой функции можно это сделать?)

Все это я делаю через макрос.
Заранее спасибо, сам попробую еще поискать, а если кто знает - пишите :)
nokal
Новичок
Новичок
 
Сообщения: 35
Зарегистрирован: 05 июн 2008 03:28

Re: Доступ к некоторым объектам

Сообщение Artem » 23 окт 2008 07:06

масса:
dimension1.value = product1.referenceProduct.Analyze.mass
Через скрипт вроде в файл не запишешь - делай на VBA.Единственный плюс скрипта - возможность запуска через нолиджи(реакцию например).Если это необходимо то запускай vba макрос через скрипт...
А вот чего поназаписала сама катька - получение(закоменчено создание) параметра из дизайнтейбла и из дискретного параметра:
Код: Выделить всё
Sub CATMain()
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument
Dim part1 As Part
Set part1 = partDocument1.Part
Dim relations1 As Relations
Set relations1 = part1.Relations
Dim designTable1 As DesignTable
Set designTable1 = relations1.GetItem("DesignTable.1")
'Set designTable1 = relations1.CreateDesignTable("DesignTable.1", "This design table was created by admcad2_1 on 23.10.2008", False, "C:\DesignTable1.xls")
part1.Update
designTable1.Configuration = 1
MsgBox designTable1.CellAsString(2, 1)
part1.Update
designTable1.Configuration = 2
part1.Update
Dim parameters2 As Parameters
Set parameters2 = part1.Parameters
'Dim realParam1 As RealParam
'Set realParam1 = parameters2.CreateReal("`Real.1`", 0#)
'Dim arrayOfVariantOfDouble1(2)
'arrayOfVariantOfDouble1(0) = 12#
'arrayOfVariantOfDouble1(1) = 11#
'arrayOfVariantOfDouble1(2) = 5#
'Set realParam1Variant = realParam1
'realParam1Variant.SetEnumerateValues arrayOfVariantOfDouble1
Dim realParam1 'As RealParam
Set realParam1 = parameters2.GetItem("`Real.1`")
Dim enumValues() As Variant
 ReDim enumValues(realParam1.GetEnumerateValuesSize() - 1)
 realParam1.GetEnumerateValues (enumValues)
 For i = LBound(enumValues) To UBound(enumValues)
   MsgBox enumValues(i)
 Next
End Sub
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Доступ к некоторым объектам

Сообщение booSter » 23 окт 2008 14:47

2 Artem
Маркируйте пожалуйста код BB-тегом [code]...[/code]
Аватара пользователя
booSter
Moderator
 
Сообщения: 227
Images: 15
Зарегистрирован: 09 фев 2008 16:48
Откуда: Minsk

Re: Доступ к некоторым объектам

Сообщение nokal » 23 окт 2008 23:27

Может тогда можете подсказать как вобще создать набор данных?

У меня в макросе будет меняться размер - следовательно масса - то есть будет набор значений, в какую переменную и как это вобще можно записать, чтобы потом из этого сделать таблицу и её уже в файл?
nokal
Новичок
Новичок
 
Сообщения: 35
Зарегистрирован: 05 июн 2008 03:28

Re: Доступ к некоторым объектам

Сообщение timkaam » 06 авг 2019 12:06

Подскажите, может кто-нить в курсе, как через VBA можно создать в дереве парат/изделия измерение или другими словами говоря, сохранить анализ того или иного параметра при использовании ANALIZE? К примеру MassValue = myProduct.Analyze.Mass - эта строка выдаёт значение массы в текстовом виде, а хотелось бы чтобы это измерение появилось в дереве и я потом мог бы к нему обращаться, а не опрашивать каждый раз чему равна масса... возможно ли это через VBA?
timkaam
Новичок
Новичок
 
Сообщения: 69
Зарегистрирован: 02 дек 2014 16:15

Re: Доступ к некоторым объектам

Сообщение Artem » 30 авг 2019 11:53

Например так:

Код: Выделить всё
Sub main
Dim spabench As SPAWorkbench
Dim mymeas
Set pd =  MechanicalFeature.Parent
Set spabench = pd.GetWorkbench("SPAWorkbench")
Dim f As Part
Set f = MechanicalFeature.Parent.Part
Set yy = f.CreateReferenceFromObject(f)
Set mymeas = spabench.GetMeasurable(yy)
'MsgBox mymeas.Volume
Set objInertia = f.Parent.Product.ReferenceProduct.GetTechnologicalObject("Inertia")
'Set objInertia = MechanicalFeature.ReferenceProduct.GetTechnologicalObject("Inertia")
'MsgBox objInertia.Mass
Set uu = MechanicalFeature.Parameters.GetItem("Mass.1")
'uu.Value = objInertia.Mass
uu.Value=MechanicalFeature.Parent.product.Analyze.Mass
End sub
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Доступ к некоторым объектам

Сообщение timkaam » 15 окт 2019 14:05

Artem писал(а):Например так:

спасибо, попробую!
timkaam
Новичок
Новичок
 
Сообщения: 69
Зарегистрирован: 02 дек 2014 16:15


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

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

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

cron