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

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

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

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

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

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

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

Сравнение двух одинаковых(?) макросов

Автор IgorT, 01.03.22, 09:13:57

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

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

Михаил88

у меня оба ваших макроса рисуют круг

IgorT

Цитата: pr0100 от 02.03.22, 13:19:18Во втором файле должно произойти пере сохранение файла. Здесь при записи КОМПАС-Макро выполнил запись с ошибкой. Он путь не поместил в кавычки. Это проблема рекордера. По этому выпадает ошибка синтаксиса SyntaxError: invalid syntax
Последняя строка:
kompas_document.SaveAs(C:\Users\Troitsky.i\Documents\Деталь1.m3d)

Должно быть:
kompas_document.SaveAs(r'C:\Users\Troitsky.i\Documents\Деталь1.m3d')
Спасибо.

IgorT

Цитата: Михаил88 от 02.03.22, 13:20:05у меня оба ваших макроса рисуют круг
После удаления строки с перезаписью файла круг стал рисоваться и вторым макросом. А выдавливание почему не выдавливается в обоих?

Михаил88

# -*- coding: utf-8 -*-
#|1

import pythoncom
from win32com.client import Dispatch, gencache

import LDefin2D
import MiscellaneousHelpers as MH

#  Подключим константы API Компас
kompas6_constants = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0).constants
kompas6_constants_3d = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants

#  Подключим описание интерфейсов API5
kompas6_api5_module = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
kompas_object = kompas6_api5_module.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(kompas6_api5_module.KompasObject.CLSID, pythoncom.IID_IDispatch))
MH.iKompasObject  = kompas_object

#  Подключим описание интерфейсов API7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
application = kompas_api7_module.IApplication(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IApplication.CLSID, pythoncom.IID_IDispatch))
MH.iApplication  = application


Documents = application.Documents
#  Получим активный документ
kompas_document = application.ActiveDocument
kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)
iDocument3D = kompas_object.ActiveDocument3D()

iPart7 = kompas_document_3d.TopPart
iPart = iDocument3D.GetPart(kompas6_constants_3d.pTop_Part)

iSketch = iPart.NewEntity(kompas6_constants_3d.o3d_sketch)
iDefinition = iSketch.GetDefinition()
iPlane = iPart.GetDefaultEntity(kompas6_constants_3d.o3d_planeXOY)
iDefinition.SetPlane(iPlane)
iSketch.Create()
iDocument2D = iDefinition.BeginEdit()
kompas_document_2d = kompas_api7_module.IKompasDocument2D(kompas_document)
iDocument2D = kompas_object.ActiveDocument2D()

obj = iDocument2D.ksCircle(0, 0, 63, 1)
iRDimParam = kompas6_api5_module.ksRDimParam(kompas_object.GetParamStruct(kompas6_constants.ko_RDimParam))
iRDimDrawing = kompas6_api5_module.ksRDimDrawingParam(iRDimParam.GetDPar())
iRDimDrawing.Init()
iRDimDrawing.ang = 139.550872277537
iRDimDrawing.pt1 = 1
iRDimDrawing.pt2 = 1
iRDimDrawing.shelfDir = -1
iRDimDrawing.textPos = 19
iRDimSource = kompas6_api5_module.ksRDimSourceParam(iRDimParam.GetSPar())
iRDimSource.Init()
iRDimSource.rad = 50
iRDimSource.xc = 0
iRDimSource.yc = 0
iDimText = kompas6_api5_module.ksDimTextParam(iRDimParam.GetTPar())
iDimText.Init(0)
iDimText.bitFlag = 1
iDimText.sign = 1
iDimText.style = 3
iDimText.stringFlag = False
obj = iDocument2D.ksDiamDimension(iRDimParam)
iDefinition.EndEdit()
iDefinition.angle = 180
iSketch.Update()
iPart7 = kompas_document_3d.TopPart
iPart = iDocument3D.GetPart(kompas6_constants_3d.pTop_Part)

obj = iPart.NewEntity(kompas6_constants_3d.o3d_bossExtrusion)
iDefinition = obj.GetDefinition()
iCollection = iPart.EntityCollection(kompas6_constants_3d.o3d_edge)
iEdge = iCollection.Last()
iEdgeDefinition = iEdge.GetDefinition()
iSketch = iEdgeDefinition.GetOwnerEntity()
iDefinition.SetSketch(iSketch)
iExtrusionParam = iDefinition.ExtrusionParam()
iExtrusionParam.direction = kompas6_constants_3d.dtNormal
iExtrusionParam.depthNormal = 12
iExtrusionParam.depthReverse = 0
iExtrusionParam.draftOutwardNormal = False
iExtrusionParam.draftOutwardReverse = False
iExtrusionParam.draftValueNormal = 0
iExtrusionParam.draftValueReverse = 0
iExtrusionParam.typeNormal = kompas6_constants_3d.etBlind
iExtrusionParam.typeReverse = kompas6_constants_3d.etBlind
iThinParam = iDefinition.ThinParam()
iThinParam.thin = False
obj.name = "Элемент выдавливания:1"
iColorParam = obj.ColorParam()
iColorParam.ambient = 0.5
iColorParam.color = 9474192
iColorParam.diffuse = 0.6
iColorParam.emission = 0.5
iColorParam.shininess = 0.8
iColorParam.specularity = 0.8
iColorParam.transparency = 1
obj.Create()

откорректировал ваш 1 макрос теперь должно работать
+ Благодарностей: 1

IgorT