Написание макроса для нахождения расстояний

Автор SoftwareDebug, 16.06.23, 15:38:01

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

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

SoftwareDebug

Добрый день!

Помогите пожалуйста с написанием макроса для нахождения максимального и среднего расстояния между группой точек, которая уже есть в файле и поверхностью, созданной по сети точек


Пока есть такой код:
# -*- coding: utf-8 -*-
#|example
 
import pythoncom
from win32com.client import Dispatch, gencache
 
import LDefin2D
import MiscellaneousHelpers as MH
 
#  Подключим константы API Компас
kompas6_constants = gencache.EnsureModule("API_CODE", 0, 1, 0).constants
kompas6_constants_3d = gencache.EnsureModule("API_CODE", 0, 1, 0).constants
 
#  Подключим описание интерфейсов API5
kompas6_api5_module = gencache.EnsureModule("API_CODE", 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("API_CODE", 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()
 
 
points_group = iDocument3D.ActiveSelection().GetObjects()
surface = model.GetSurfacePoints()
surface = model.GetSurface()
intersection_curve = kompas.GetInterfaceObject("KompasSurfaces3D.SurfacesIntersectionCurve")
 
# Проходимся по всем точкам в группе
for i in range(points_count):
    # Получаем текущую точку
    point = points_objects.Item(i)
 
    # Получаем расстояние от точки до поверхности по сети точек
    distance = surface.DistanceToPoint(point)
    application.MessageBoxEx(distance,'Результат измерений',64)
application.MessageBoxEx('Среднее значение отклонения точки от поверхности: 64\nМаксимальное значение отклонения: 456','Результат измерений',32)

ITE

python так себе язык - разве на нем можно написать что-то для компаса? бери лучше сшарп - он вроде должен зайти , если бы да джаве можно было - то это пожалуй лучший вариант:D