• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Редактирование линии-выноски на чертеже с помощью Python

Автор NikS, 24.10.22, 10:14:27

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

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

NikS

Добрый день!
Подскажите, как через Python получить возможность редактировать положение линии-выноски (изменить координаты ее стрелки и полки).
Через ViewsAndLayersManager и ISymbols2DContainer пробовал, но как редактировать координаты не нашел.

p3452

А Справку посмотреть?
А Форум "полистать"?
А "примеры" в SDK глянуть?
- Слабо?
Размеры 2D  - пример из Step.png

Михаил88

#2
Цитата: NikS от 24.10.22, 10:14:27Через ViewsAndLayersManager и ISymbols2DContainer пробовал, но как редактировать координаты не нашел.

import pythoncom
from win32com.client import Dispatch, gencache

#  Подключим описание интерфейсов 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))

kompas_document = application.ActiveDocument
kompas_document_2d = kompas_api7_module.IKompasDocument2D(kompas_document)

# Менеджер слоев и видов графического документа.
views_and_layers_manager = kompas_document_2d.ViewsAndLayersManager
# Интерфейс коллекции видов графического документа.
views = views_and_layers_manager.Views
view = views.View(0)
# Интерфейс контейнера условных обозначений
iSymbols2DContainer = kompas_api7_module.ISymbols2DContainer(view)
# Интерфейс коллекции линий-выносок
leaders = iSymbols2DContainer.Leaders
# Интерфейс обозначения линии-выноски 2D
iBaseLeader = leaders.Leader(0)
# Интерфейс для работы с ответвлениями
iBranchs = kompas_api7_module.IBranchs(iBaseLeader)
print(iBranchs)
# BranchCount - Число ответвлений
branchCount = iBranchs.BranchCount
print(branchCount)
# Координата начала полки или точка привязки по X
x0 = iBranchs.X0
# Координата начала полки или точка привязки по Y
y0 = iBranchs.Y0
print(x0, y0)
# Массив SAFEARRAY координат точек ответвления
branch_points = iBranchs.BranchPoints(0)
print(branch_points)

Screenshot_1.png
Screenshot_2.png

Так можно получить координаты, чтобы изменить читайте описание к свойствам X0, Y0, BranchPoints. После задания параметров нужно вызвать iBaseLeader.Update(), чтобы изменения вступили в силу.
Пример:
iBranchs.X0 = 200
iBranchs.Y0 = 200
iBranchs.SetBranchPoints(0, (50, 80))
iBaseLeader.Update()
+ Благодарностей: 1