Форум пользователей ПО АСКОН
Новости:
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. Спасибо!
Скиньте пример использования функции 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)
Тут происходит вставка фрагмента, который не изменяется. Если одно условие соблюдено, то вставляется один фрагмент. Если другое условие то другой. И соответственно если фрагмент не нужен, то его попросту нет.
Источник