Округление размера

Автор Vashnaemnik, 24.04.25, 10:57:50

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

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

Vashnaemnik

Добрый день форумчане.
Пожалуйста, подскажите. Мне надо округлить размер до целого.
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 = Documents.AddWithDefaultSettings(kompas6_constants.ksDocumentDrawing, True)

kompas_document_2d = kompas_api7_module.IKompasDocument2D(kompas_document)
iDocument2D = kompas_object.ActiveDocument2D()

obj = iDocument2D.ksCircle(101.249415751556, 192.172452615471, 35, 1)
obj = iDocument2D.ksLineSeg(81.362740653664, 220.973844136557, 81.522074204023, 163.261693450984, 1)
iLDimParam = kompas6_api5_module.ksLDimParam(kompas_object.GetParamStruct(kompas6_constants.ko_LDimParam))
iDimDrawing = kompas6_api5_module.ksDimDrawingParam(iLDimParam.GetDPar())
iDimDrawing.Init()
iDimDrawing.ang = 0
iDimDrawing.lenght = 0
iDimDrawing.pl1 = False
iDimDrawing.pl2 = False
iDimDrawing.pt1 = 1
iDimDrawing.pt2 = 1
iDimDrawing.shelfDir = 0
iDimDrawing.textBase = 0
iDimDrawing.textPos = 0
iLDimSource = kompas6_api5_module.ksLDimSourceParam(iLDimParam.GetSPar())
iLDimSource.Init()
iLDimSource.basePoint = 1
iLDimSource.dx = -29.821160887345
iLDimSource.dy = -0.0823312142
iLDimSource.ps = 2
iLDimSource.x1 = 81.362740653664
iLDimSource.y1 = 220.973844136557
iLDimSource.x2 = 81.522074204023
iLDimSource.y2 = 163.261693450984
iDimText = kompas6_api5_module.ksDimTextParam(iLDimParam.GetTPar())
iDimText.Init(0)
iDimText.bitFlag = 1
iDimText.sign = 0
iDimText.style = 3
iDimText.stringFlag = False
# округление размера до целого
iDimentionOptions = kompas6_api5_module.ksDimensionsOptions(kompas_object.GetParamStruct(kompas6_constants.ko_DimensionOptions))
iDimentionOptions.Init()
iDimentionOptions.decimalsCount = 0
obj = iDocument2D.ksLinDimension(iLDimParam)
Я ввожу свойство округления до нуля, но размер ставиться все равно не целый.
Подскажите, как это сделать?

Забыл дописать. Файл в формате pym.

Михаил88


ks_Document2D = kompas_object.ActiveDocument2D()
ks_DimentionOptions = kompas_object.GetParamStruct(kompas6_constants.ko_DimensionOptions)
ks_DimentionOptions.Init()
ks_DimentionOptions.decimalsCount = 0
ks_Document2D.ksSetDocOptions(LDefin2D.DIMENTION_OPTIONS, ks_DimentionOptions)
+ Благодарностей: 1

Vashnaemnik

Цитата: Михаил88 от 24.04.25, 12:28:57ks_Document2D = kompas_object.ActiveDocument2D()
ks_DimentionOptions = kompas_object.GetParamStruct(kompas6_constants.ko_DimensionOptions)
ks_DimentionOptions.Init()
ks_DimentionOptions.decimalsCount = 0
ks_Document2D.ksSetDocOptions(LDefin2D.DIMENTION_OPTIONS, ks_DimentionOptions)
Огромное спасибо Михаил.
Как всегда, на высоте.
Про последнюю строку в жизни бы не догадался, даже в примерах SDK ее не было.