Главная страница
Навигация по странице:

  • 3. Ход работы

  • сладкая и гладкая. Лабораторная работа 4 Разработка программных продуктов для двухмерного моделирования с использованием встроенных языков среды сапр


    Скачать 169.8 Kb.
    НазваниеЛабораторная работа 4 Разработка программных продуктов для двухмерного моделирования с использованием встроенных языков среды сапр
    Дата14.04.2023
    Размер169.8 Kb.
    Формат файлаdocx
    Имя файласладкая и гладкая.docx
    ТипЛабораторная работа
    #1062975

    МИНОБРНАУКИ РОССИИ
    Федеральное государственное бюджетное образовательное учреждение

    высшего образования

    «Тульский государственный университет»

    Кафедра вычислительной техники

    Лингвистическое и программное обеспечение автоматизированных

    систем

    ЛАБОРАТОРНАЯ РАБОТА №4
    Разработка программных продуктов для двухмерного моделирования с использованием встроенных языков среды САПР


    Выполнил: студент группы 220292

    Рогожин А.Ю.____________

    Проверил: доц., к.т.н. кафедры ВТ

    Пестин М.С____________


    Тула 2023
    Целью работы является реализация макроса САПР в среде КОМПАС-Макро с использованием языка Python для двухмерного проектирования.

    Задачами работы являются:

    1. Изучить задание;

    2. Освоить работу с КОМПАС-Макро;

    3. Освоить основы языка Python.

    2. Задание на работу

    Вариант №4

    Создать макрос для параметрического построения данной детали (рисунок 1) в 2D в КОМПАС средствами языка Python.



    Рисунок 1 – Задание

    3. Ход работы

    Возможно два способа создания макросов: вручную на языке Python или путем записи действий пользователя и затем редактирования некоторых параметров макроса.

    Макрос может не только выполнять построения, но и анализировать уже существующие чертежи.

    Для того чтобы создать заданный объект необходимо создать текстовый документ и подключить к нему python, а также другие библиотеки (листинг 1).

    Листинг 1 – Подключение

    # Подключим python

    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
    Далее выполняется подключение активного документа (листинг 2).

    Листинг 2 – Подключение документа

    Documents = application.Documents

    # Получим активный документ

    kompas_document = application.ActiveDocument

    kompas_document_2d = kompas_api7_module.IKompasDocument2D(kompas_document)

    iDocument2D = kompas_object.ActiveDocument2D()

    Затем прописываются координаты линий чертежа, для построения заданного объекта (листинг 3).

    Листинг 3 – Координаты

    obj = iDocument2D.ksLineSeg(172.04632660962, 253.49488340422, 152.04632660962, 253.49488340422, 1)

    obj = iDocument2D.ksLineSeg(152.04632660962, 253.49488340422, 120.850925429149, 237.625197043441, 1)

    obj = iDocument2D.ksLineSeg(120.850925429149, 237.625197043441, 120.850925429149, 217.625197043441, 1)

    obj = iDocument2D.ksLineSeg(120.850925429149, 217.625197043441, 130.850925429149, 217.625197043441, 1)

    obj = iDocument2D.ksLineSeg(130.850925429149, 217.625197043441, 130.850925429149, 207.625197043441, 1)

    obj = iDocument2D.ksLineSeg(130.850925429149, 207.625197043441, 120.850925429149, 207.625197043441, 1)

    obj = iDocument2D.ksLineSeg(120.850925429149, 207.625197043441, 120.850925429149, 187.625197043441, 1)

    obj = iDocument2D.ksLineSeg(120.850925429149, 187.625197043441, 152.663492088135, 173.032027320328, 1)

    obj = iDocument2D.ksLineSeg(152.663492088135, 173.032027320328, 172.04632660962, 173.032027320328, 1)

    obj = iDocument2D.ksLineSeg(172.04632660962, 173.032027320328, 172.04632660962, 253.49488340422, 1)

    obj = iDocument2D.ksLineSeg(120.850925429149, 232.591342732517, 136.757208758642, 232.591342732517, 1)

    obj = iDocument2D.ksLineSeg(172.04632660962, 230.372197400241, 137.04632660962, 230.372197400241, 1)

    obj = iDocument2D.ksLineSeg(136.757208758642, 232.591342732517, 137.04632660962, 230.372197400241, 1)

    obj = iDocument2D.ksLineSeg(136.757208758642, 232.591342732517, 136.757208758642, 227.591342732517, 1)

    obj = iDocument2D.ksLineSeg(136.757208758642, 227.591342732517, 172.04632660962, 227.591342732517, 1)

    obj = iDocument2D.ksLineSeg(107.539369151393, 212.625197043441, 187.539369151393, 212.625197043441, 8)

    obj = iDocument2D.ksLineSeg(136.757208758642, 227.591342732517, 136.757208758642, 212.625197043441, 1)

    obj = iDocument2D.ksLineSeg(152.663492088135, 173.032027320328, 152.663492088135, 212.625197043441, 1)

    obj = iDocument2D.ksLineSeg(152.663492088135, 212.625197043441, 136.757208758642, 212.625197043441, 1)

    obj = iDocument2D.ksLineSeg(172.04632660962, 248.932321997461, 162.04632660962, 248.932321997461, 1)

    obj = iDocument2D.ksLineSeg(162.04632660962, 248.932321997461, 162.04632660962, 245.560040223831, 1)

    obj = iDocument2D.ksLineSeg(162.04632660962, 245.560040223831, 172.04632660962, 245.560040223831, 1)

    Далее задаётся штриховка. Сначала дается команда начала штриховки iHatchParam, затем строятся объекты, образующие ее контур, а затем еще одна команда завершает построение.

    Параметры штриховки задаются следующим образом (листинг 4).

    Листинг 4 – Задание штриховки

    iHatchParam = kompas6_api5_module.ksHatchParam(kompas_object.GetParamStruct(kompas6_constants.ko_HatchParam))

    iHatchParam.Init()

    iHatchParam.ang = 45

    iHatchParam.color = -16777216

    iHatchParam.sheeting = 1

    iHatchParam.step = 3

    iHatchParam.width = 0

    iHatchParam.x = 0

    iHatchParam.y = 0

    iHatchParam.style = 0

    iHatchParam.boundaries = iDocument2D.ksNewGroup(1)

    iDocument2D.ksContour(1)

    iDocument2D.ksNewGroup(1)

    obj = iDocument2D.ksLineSeg(152.04632660962, 253.49488340422, 120.850925429149, 237.625197043441, 1)

    obj = iDocument2D.ksLineSeg(120.850925429149, 237.625197043441, 120.850925429149, 232.591342732517, 1)

    obj = iDocument2D.ksLineSeg(120.850925429149, 232.591342732517, 136.757208758642, 232.591342732517, 1)

    obj = iDocument2D.ksLineSeg(136.757208758642, 232.591342732517, 136.757208758642, 227.591342732517, 1)

    obj = iDocument2D.ksLineSeg(136.757208758642, 227.591342732517, 172.04632660962, 227.591342732517, 1)

    obj = iDocument2D.ksLineSeg(172.04632660962, 227.591342732517, 172.046326609619, 245.560040223831, 1)

    obj = iDocument2D.ksLineSeg(172.04632660962, 245.560040223831, 162.04632660962, 245.560040223831, 1)

    obj = iDocument2D.ksLineSeg(162.04632660962, 245.560040223831, 162.04632660962, 248.932321997461, 1)

    obj = iDocument2D.ksLineSeg(162.04632660962, 248.932321997461, 172.04632660962, 248.932321997461, 1)

    obj = iDocument2D.ksLineSeg(172.04632660962, 248.932321997461, 172.04632660962, 253.49488340422, 1)

    obj = iDocument2D.ksLineSeg(172.04632660962, 253.49488340422, 152.04632660962, 253.49488340422, 1)

    iDocument2D.ksEndGroup()

    obj = iDocument2D.ksEndObj()

    После чего сохраняем данный документ в формате cdm, после этого макрос будет готов к использованию в среде разработки КОМПАС 3d.

    Для того чтобы запустить и проверить работоспособность макроса необходимо в менеджере библиотек выбрать папку прочие и перейти в КОМПАС-макро. Далее следует открыть макросы путем нажатия на соответствующую кнопку (рисунок 2).


    Рисунок 2 – Макросы

    Далее необходимо нажать выполнить, после чего макрос мгновенно начертит заданный ранее чертёж (рисунок 3).

    ,

    Рисунок 3 - Результат

    Чтобы можно было параметрически изменять значения размеров модели (т.е. не строить одну и ту же муфту, а иметь возможность построения целого семейства параметрических конструкций), необходимо обеспечить ввод значений пользователем. Проще всего это сделать при помощи встроенных в сам КОМПАС диалоговых окон (листинг 4).

    Сначала необходимо инициализировать переменную (в данном случае r) любым значением. Далее у объекта iKompasObject (ссылка на который получается командой iKompasObject = KAPI.KompasObject(iKompasObject) в начале программы) имеется ряд свойств, выводящих на экран КОМПАС диалоговые окна ввода данных (рисунок 4).



    Листинг 4 – Задание диалоговых окон

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)
    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    4. Вывод

    В данной лабораторной работе были получены знания по работе с КОМПАС-Макро, а также был написан собственный макрос с возможностью ввода параметров для создания 2D объектов.

    ПРИЛОЖЕНИЕ

    # -*- coding: cp1251 -*-

    #|11
    import Kompas10API5 as KAPI

    import Kompas10API7 as KAPI7

    import pythoncom

    from win32com.client import Dispatch

    import LDefin2D

    import LDefin3D

    import ksConstants as CONST2D7

    import ksConstants3D as CONST3D7

    import MiscellaneousHelpers as MH
    iKompasObject = Dispatch('KOMPAS.Application.5')

    iKompasObject = KAPI.KompasObject(iKompasObject)

    MH.iKompasObject = iKompasObject
    iApplication = Dispatch('KOMPAS.Application.7')

    iApplication = KAPI7.IApplication(iApplication)

    MH.iApplication = iApplication
    iDocument2D = iKompasObject.ActiveDocument2D()

    iDocument = iApplication.ActiveDocument

    iKompasDocument2D = KAPI7.IKompasDocument2D(iDocument)
    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)
    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)
    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)
    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    r=0.0

    r = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r )[1]

    r1=0.0

    r1 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r1 )[1]

    r3=0.0

    r3 = iKompasObject.ksReadDouble( 'R=', 100, 0, 300, r3 )[1]

    r4=0.0

    r4 = iKompasObject.ksReadDouble( 'R1=', 100, 0, 300, r4 )[1]

    iDocument2D.ksLineSeg(r,r1,r3,r4,1)

    iHatchParam = KAPI.ksHatchParam(iKompasObject.GetParamStruct(LDefin2D.ko_HatchParam))

    iHatchParam.Init()

    iHatchParam.ang = 45.0

    iHatchParam.boundaries = 298574696

    iHatchParam.color = -16777216

    iHatchParam.sheeting = 1

    iHatchParam.step = 3.0

    iHatchParam.style = 0

    iHatchParam.width = 0.0

    iHatchParam.x = 0.0

    iHatchParam.y = 0.0

    iHatchParam.boundaries = iDocument2D.ksNewGroup(1)

    iDocument2D.ksContour(2)

    iDocument2D.ksLineSeg(85.0, 206.0, 136.0, 206.0, 1)

    iDocument2D.ksLineSeg(136.0, 206.0, 136.0, 198.0, 1)

    iDocument2D.ksLineSeg(136.0, 198.0, 179.0, 198.0, 1)

    iDocument2D.ksLineSeg(179.0, 198.0, 179.0, 247.0, 1)

    iDocument2D.ksLineSeg(179.0, 247.0, 164.0, 247.0, 1)

    iDocument2D.ksLineSeg(164.0, 247.0, 164.0, 255.0, 1)

    iDocument2D.ksLineSeg(164.0, 255.0, 179.0, 255.0, 1)

    iDocument2D.ksLineSeg(179.0, 255.0, 179.0, 266.0, 1)

    iDocument2D.ksLineSeg(179.0, 266.0, 149.0, 266.0, 1)

    iDocument2D.ksLineSeg(149.0, 266.0, 85.0, 214.0, 1)

    iDocument2D.ksLineSeg(85.0, 214.0, 85.0, 206.0, 1)

    iDocument2D.ksEndObj()

    iDocument2D.ksEndGroup()

    iDocument2D.ksHatchByParam(iHatchParam)


    написать администратору сайта