Компас макро не работает

Форум пользователей ПО АСКОН

Новости:

Python и КОМПАС-Макро

Ответов: 4
Просмотров: 126

Ответов: 4
Просмотров: 195

Ответов: 1
Просмотров: 106

Ответов: 29
Просмотров: 674

Ответов: 42
Просмотров: 670

Ответов: 2
Просмотров: 130

Ответов: 2
Просмотров: 103

Ответов: 1
Просмотров: 188

Ответов: 0
Просмотров: 77

Ответов: 30
Просмотров: 3,178

Ответов: 6
Просмотров: 216

Ответов: 0
Просмотров: 125

Ответов: 2
Просмотров: 240

Ответов: 0
Просмотров: 165

Ответов: 5
Просмотров: 244

Ответов: 6
Просмотров: 257

Ответов: 2
Просмотров: 154

Ответов: 5
Просмотров: 295

Ответов: 42
Просмотров: 8,690

Ответов: 7
Просмотров: 285

Ответов: 15
Просмотров: 405

Ответов: 1
Просмотров: 185

Ответов: 116
Просмотров: 2,099

Ответов: 4
Просмотров: 241

Ответов: 1
Просмотров: 176

Ответов: 1
Просмотров: 128

Ответов: 5
Просмотров: 386

Ответов: 8
Просмотров: 446

Ответов: 7
Просмотров: 368

Ответов: 2
Просмотров: 380

Ответов: 4
Просмотров: 305

Ответов: 7
Просмотров: 443

Ответов: 3
Просмотров: 244

Ответов: 5
Просмотров: 593

Ответов: 5
Просмотров: 660

Голосование
Перемещенная тема

Заблокированная тема
Прикрепленная тема

Источник

Компас макро не работает

Доброго времени суток, коллеги! Потихоньку изучаю Компас-Макро и как следствие SDK. Использую Python. И вот собственно вопрос. Пытался ковыряясь в SDK, программно отключить видимость эскиза и координат. Но не получается. Ничего не меняется. Прошу подскажите что я делаю не так?

import pythoncom
from win32com.client import Dispatch, gencache
import LDefin3D
import MiscellaneousHelpers as MH

kompas6_api5_module = gencache.EnsureModule(«<0422828c-f174-495e-ac5d-d31014dbbe87>«, 0, 1, 0)
iKompasObject = kompas6_api5_module.KompasObject(Dispatch(«Kompas.Application.5»)._oleobj_.QueryInterface(kompas6_api5_module.KompasObject.CLSID, pythoncom.IID_IDispatch))

kompas_api7_module = gencache.EnsureModule(«<69ac2981-37c0-4379-84fd-5dd2f3c0a520>«, 0, 1, 0)
kompas_api_object = kompas_api7_module.IKompasAPIObject(Dispatch(«Kompas.Application.7»)._oleobj_.QueryInterface(kompas_api7_module.IKompasAPIObject.CLSID, pythoncom.IID_IDispatch))
iApplication = kompas_api_object.Application

iDocument3D = iKompasObject.ActiveDocument3D()
iDocument3D.fileName
print(iDocument3D.fileName) # проверил что интерфейс работает
iDocument3D.hideInComponentsMode
iDocument3D.hideAllPlaces
iDocument3D.hideAllSketches
iDocument3D.windowNeedRebuild
iDocument3D.treeNeedRebuild
# и ничего не изменилось. Модель обычная 3D деталь вытянул круг и все. Хотел просто скрыть видимость осей координат и эскиз. Почему не сработало? Прошу подробный ответ так как многое могу не понять, пока что учусь просто подключать интерфейсы SDK. Спасибо!

Читайте также:  Xiaomi mi band 4 nfc как настроить время

Скиньте пример использования функции AddCut от интерфейса ICutViewParam.
CutViewParam.AddCut(‘Разрез’,1,0,0,true,DrawingObject,View);

потому что в этой функции мне не ясен параметр DrawingObject и где его брать. я хочу сделать местный разрез. для этого я программно создал два ассоциативных вида: один произвольный, второй проекционный. далее начертил программно прямоугольник — контур ограничения выреза. и теперь не знаю как его присвоить DrawingObject. спасибо.

Вячеслав, может быть не IDrawingContour а IDrawingContours?

«на виде у меня есть всего два объекта — это сама деталь, созданная проекцией, и сам прямоугольник»
Проекционный вид содержит геометрические примитивы контура модели. Там никак не 2 объекта.

И вновь всех приветствую, недавно начал изучать Компас-Макро и API.Прошу подсказать. (пытаюсь разобраться как пользоваться константами в API) например пытался сменить тему компаса и не получилось. Прошу объясните что сделал не так, если не сложно то подробно)))) Вот. код. тема компаса не сменилась с белой на черную, причем вывод принта выдает 2, что означает темная тема. Спасибо!

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()

iSystemSettings=application.SystemSettings
Theme=iSystemSettings.Theme
Theme=kompas6_constants.ksThemeDark
print(Theme)

Алексей, простите а можно чуть более подробнее, т.к. я новичок в Python и именно это сделать у меня не получилось. Вот пример кода
# -*- coding: utf-8 -*-
#|TechnicalDemand

Читайте также:  Лифан солано не работает парктроники

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_2d = kompas_api7_module.IKompasDocument2D(kompas_document)
iDocument2D = kompas_object.ActiveDocument2D()

iDrawingDocument = kompas_document._oleobj_.QueryInterface(kompas_api7_module.IDrawingDocument.CLSID, pythoncom.IID_IDispatch)
iDrawingDocument = kompas_api7_module.IDrawingDocument(iDrawingDocument)

iTechnicalDemand=iDrawingDocument.TechnicalDemand
iText=iTechnicalDemand.Text
iTextLine=iText.Add()
iTextLine.Numbering=1
ITextItem = iTextLine.Add()

ITextItem.Str =»* Размеры для справок.»
iTechnicalDemand.Update()

iTextFont=ITextItem.iTextFont выдает ошибку. В справке SDK я так и не понял как получить интерфейс iTextFont

Если быть точным я хочу поставить точку после нумерации ТТ и иметь возможность ставить курсив, если необходимо. Заранее спасибо за любое объяснение

Источник

Компас макро не работает

Руслан, здравствуйте!
Для демо-версии урезаны следующие функции:
*Обработка 2 первых записей в Списке при Выгрузке в DXF
*Сортировка Списка по столбцам
*Вызов команды Создать развертку из контекстного меню
*Вызов команды Удалить из списка из контекстного меню и из вкладки Действия

Полный функционал будет доступен после получения ключа

Добрый день. Подскажите такой вопрос, пожалуйста.

Как получить доступ к структуре параметров объекта (типа текст TEXT_OBJ) , связанной с интерфейсом параметров перекрывающихся объектов ksOverlapObjectOptions (API интерфейсов. Версия 5).
Иначе, интересует возможность получить и редактировать параметр «очистить фон» для текстовых объектов.

Источник

Компас макро не работает

Игорь, Данная панель по сути сборка из различных элементов
Вот как хотелось бы, но у меня все по другому.
К примеру кусок код:

iFragment = KAPI.ksFragment(iDocument2D.GetFragment())
obj = iFragment.ksFragmentDefinition(«C:/Users/153/Documents/Фрагмент1.frw», «C:\Users\153\Documents\Фрагмент1.frw», 0)
iPlacementParam = KAPI.ksPlacementParam(iKompasObject.GetParamStruct(LDefin2D.ko_PlacementParam))
iPlacementParam.Init()
iPlacementParam.angle = 0.0
iPlacementParam.scale_ = 1.0
iPlacementParam.xBase = 301.70973536864
iPlacementParam.yBase = 120.88969868443
iFragment.ksInsertFragmentEx(obj, True, iPlacementParam, 1)

Читайте также:  Как починить сломанное колесо машинки

Тут происходит вставка фрагмента, который не изменяется. Если одно условие соблюдено, то вставляется один фрагмент. Если другое условие то другой. И соответственно если фрагмент не нужен, то его попросту нет.

Источник

Оцените статью