• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Скругление (Python)

Автор Веталь, 08.02.12, 19:22:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Веталь

Цитата: chelkar от 02.02.12, 10:02:57
Хотел написать словами, потом подумал что лучше всего простой пример.
Собственно прикладываю. Измените расширение на m3m.
Комментарии по тексту макроса

PS. Не забывайте, макрос можно записать в КОМПАС-Макро и посмотреть что получилось в коде.
Для 3D это тоже работает.


Спасибо, очень хороший пример, потихоньку розбираюсь, а как сделать скругление, я с SDK 2D розобрался, а 3D все на много сложнее, никак не могу понять что там где находится, за ранее спасибо

Вот в примере скругление.
EdgeCollection = iPart.EntityCollection (LDefin3D.o3d_edge)
# первое ребро из полученного массива
Edge = EdgeCollection.First ()

# И создаем скругление для этого ребра, по ранее приведенному алгоритму - создать объект с нужным типом,
# Заполнить его определение,
# Создать
obj = iPart.NewEntity(LDefin3D.o3d_fillet)
iDefinition = obj.GetDefinition()
FiletEdges = iDefinition.array ()
FiletEdges.Add (Edge)
iDefinition.radius = 5

obj.Create()

Веталь

Цитата: Веталь от 08.02.12, 19:22:35

Спасибо, очень хороший пример, потихоньку розбираюсь, а как сделать скругление, я с SDK 2D розобрался, а 3D все на много сложнее, никак не могу понять что там где находится, за ранее спасибо

Извините плз, за мою глупость, не скругление а фаску, и операцию вращения...

Фаска
obj = iPart.NewEntity(LDefin3D.o3d_chamfer)
iDefinition = obj.GetDefinition()
iDefinition.tangent = True
iDefinition.SetChamferParam(True, 5.0, 5.0)
iArray = iDefinition.array()
iCollection = iPart.EntityCollection(LDefin3D.o3d_edge)
iEdge = iCollection.GetByIndex(0)
iArray.Add(iEdge)
obj.Create()

Операция вращения.
iPart = iDocument3D.GetPart(LDefin3D.pTop_Part)
obj = iPart.NewEntity(LDefin3D.o3d_bossRotated)
iDefinition = obj.GetDefinition()
iCollection = iPart.EntityCollection(LDefin3D.o3d_edge)
iEdge = iCollection.GetByIndex(0)
iEdgeDefinition = iEdge.GetDefinition()
iSketch = iEdgeDefinition.GetOwnerEntity()
iDefinition.SetSketch(iSketch)

iRotatedParam = iDefinition.RotatedParam()
iRotatedParam.angleNormal = 360.0
iRotatedParam.angleReverse = 360.0
iRotatedParam.direction = LDefin3D.dtNormal
iRotatedParam.toroidShape = False

iThinParam = iDefinition.ThinParam()
iThinParam.thin = False
iThinParam.normalThickness = 1.0
iThinParam.reverseThickness = 1.0
iThinParam.thinType = LDefin3D.dtNormal

obj.name = "???????? ????????:1"
obj.Create()