Создание локальной системы координат с помощью Python

Автор Valid, 16.03.14, 22:17:26

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

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

Valid

Как в 3D модели создать локальную систему координат, с помощью Python (или Delphi). Если можно кусок кода. Заранее спасибо.

Slaviation

В прицепе.
Должны быть установлены:
КОМПАС-3D V13 или новее, Python, расширение PyWin32 для Python.
Запускаем компас, создаем деталь или сборку, запускаем тест.
+ Благодарностей: 1

tramp_m

Может быть это проще...
Или не в тему, прошу прощения...

Цитата: tramp_m от 18.03.14, 16:34:28
Может быть это проще...
Или не в тему, прошу прощения...
Очень, не в тему.

Valid


Lito 2

Добрый день.
Я можно как-то увидеть пример создания ЛСК на Delphi?
А то на Питоне не совсем понятно к какому интерфейсу принадлежит localCoordinateSystem?

#6
Не Delphi, но будет понятно.
http://forum.ascon.ru/index.php/topic,26313.msg193227.html#msg193227
На Delphi:
pAuxiliaryGeomContainer:=pPart7 as IAuxiliaryGeomContainer; // Интерфейс контейнера объектов вспомогательной геометрии
if pAuxiliaryGeomContainer<>nil then
begin
   pLocalCoordinateSystems:=pAuxiliaryGeomContainer.LocalCoordinateSystems; // Интерфейс коллекции локальных систем координат
   if pLocalCoordinateSystems<>nil then pLocalCoordinateSystem:=pLocalCoordinateSystems.Add;
   if pLocalCoordinateSystem<>nil then
    begin // Интерфейс локальной системы координат
      pLocalCoordinateSystem.OrientationType:=ksAxisOrientation;
      pLocalCoordinateSystem.X:=100;
      pLocalCoordinateSystem.Y:=100;
      pLocalCoordinateSystem.Z:=100;
      pLocalCoordinateSystem.Update;
    end;
end;

НЕЙРОН

# (Python)(2020год) Создание ЛСК в 3D по направлению осей , через API7
#  Получим активный документ
kompas_document = application.ActiveDocument
kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)

# Создание ЛСК:
iPart7 = kompas_document_3d.TopPart

iAuxiliaryGeomContainer = iPart7._oleobj_.QueryInterface(kompas_api7_module.IAuxiliaryGeomContainer.CLSID, pythoncom.IID_IDispatch)
iAuxiliaryGeomContainer = kompas_api7_module.IAuxiliaryGeomContainer(iAuxiliaryGeomContainer)
iLocalCoordinateSystems = iAuxiliaryGeomContainer.LocalCoordinateSystems
iLocalCoordinateSystem = iLocalCoordinateSystems.Add()
iPoint3D = iLocalCoordinateSystem._oleobj_.QueryInterface(kompas_api7_module.IPoint3D.CLSID, pythoncom.IID_IDispatch)
iPoint3D = kompas_api7_module.IPoint3D(iPoint3D)
iPoint3D.ParameterType = kompas6_constants_3d.ksPParamCoord
iPoint3D.X = -30  # Координата X ЛСК
iPoint3D.Y = 50   # Координата Y ЛСК
iPoint3D.Z = 50   # Координата Z ЛСК
iLocalCoordinateSystem.OrientationType = kompas6_constants_3d.ksAxisOrientation
iLocalCoordinateSystem.Update()

iLocalCSParameters = iLocalCoordinateSystem.LocalCSParameters
iLocalCSAxesDirectionParam = iLocalCSParameters._oleobj_.QueryInterface(kompas_api7_module.ILocalCSAxesDirectionParam.CLSID, pythoncom.IID_IDispatch)
iLocalCSAxesDirectionParam = kompas_api7_module.ILocalCSAxesDirectionParam(iLocalCSAxesDirectionParam)
matrix = [0.495203, 0, 0.868777, 0, 0, 1, -0, 0, -0.868777, 0, 0.495203, 0, -30, 2, 23, 1] # Матрица направлений осей

iLocalCoordinateSystem.InitByMatrix3D(matrix)
iLocalCoordinateSystem.Update()

НЕЙРОН

# (Python)(2020год) Создание ЛСК в 3D ориентация по углам Эйлера , через API7
#  Получим активный документ
kompas_document = application.ActiveDocument
kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)

# Создание ЛСК:
iPart7 = kompas_document_3d.TopPart

iAuxiliaryGeomContainer = iPart7._oleobj_.QueryInterface(kompas_api7_module.IAuxiliaryGeomContainer.CLSID, pythoncom.IID_IDispatch)
iAuxiliaryGeomContainer = kompas_api7_module.IAuxiliaryGeomContainer(iAuxiliaryGeomContainer)
iLocalCoordinateSystems = iAuxiliaryGeomContainer.LocalCoordinateSystems
iLocalCoordinateSystem = iLocalCoordinateSystems.Add()
iPoint3D = iLocalCoordinateSystem._oleobj_.QueryInterface(kompas_api7_module.IPoint3D.CLSID, pythoncom.IID_IDispatch)
iPoint3D = kompas_api7_module.IPoint3D(iPoint3D)
iPoint3D.ParameterType = kompas6_constants_3d.ksPParamCoord
iPoint3D.X = -50    # Координата X ЛСК
iPoint3D.Y = 60     # Координата Y ЛСК
iPoint3D.Z = 70     # Координата Z ЛСК
iLocalCoordinateSystem.OrientationType = kompas6_constants_3d.ksEulerCorners
iLocalCoordinateSystem.Update()

iLocalCSParameters = iLocalCoordinateSystem.LocalCSParameters
iLocalCSEulerParam = iLocalCSParameters._oleobj_.QueryInterface(kompas_api7_module.ILocalCSEulerParam.CLSID, pythoncom.IID_IDispatch)
iLocalCSEulerParam = kompas_api7_module.ILocalCSEulerParam(iLocalCSEulerParam)
iLocalCSEulerParam.NutationAngle = 30     # Углы Эйлера, угол нутации
iLocalCSEulerParam.PrecessionAngle = 20   # Углы Эйлера, угол процессии
iLocalCSEulerParam.RotationAngle = 50     # Углы Эйлера, угол вращения
iLocalCoordinateSystem.Update()