Получение переменных в питоне

Автор Потолковский, 27.04.16, 16:25:31

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

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

Потолковский

Совсем не программист. И ничего не понимаю в этом SDK как в нем работать. Может кто напишет простой макрос.
Задача такая: есть цилиндр, в котором имеется некая внешняя переменная управляющая эскизом размера D. Пусть по умолчанию он равен 100. Выдавливается эскиз на расстояние 50. Автоматом присваивается внутренняя переменная v2

Вот хотелось заполучить код такой программы на питоне. В делфи в Норсееве есть такой пример и код. Но я наверное слишком тупой, чтобы преобразовать его в код питона. Прощу помощи.

Пример на делфи
У этой детали две внешних переменных: «D» - диаметр основания; и
«H» - высота цилиндра. Ниже представлен ключевой фрагмент исходного
текста программы, демонстрирующей взаимодействие с этой моделью.
const
pTop_Part = -1;
vm_Shaded = 3;
var
kompas: KompasObject;
Document3D: ksDocument3D;
Part: ksPart;
VariableCollection: ksVariableCollection;
Variable: ksVariable;
begin
//Подключаемся к КОМПАСу
kompas:=KompasObject(CreateOleObject('Kompas.Application.5'));
//Получаем интерфейс документа-модели
Document3D:=ksDocument3D(kompas.Document3D());
//Открываем документ-модель
Document3D.Open('D:\Study\ПараметризованнаяДеталь.m3d',FALSE);
//Получаем интерфейс компонента
Part:= ksPart(Document3D.GetPart(pTop_Part));
//Получаем массив переменных модели
VariableCollection:=ksVariableCollection(Part.VariableCollection());
//Изменяем значение первой переменной
Variable:=ksVariable(VariableCollection.GetByName('D',TRUE,TRUE));
Variable.value:=100;
//Изменяем значение второй переменной
Variable:=ksVariable(VariableCollection.GetByName('H',TRUE,TRUE));
Variable.value:=10;
//Перестраиваем модель
Part.RebuildModel();
//Перерисовываем документ
Document3D.RebuildDocument();
//Устанавливаем полутоновое отображение модели
Document3D.drawMode:=vm_Shaded;
//Включаем отображение каркаса
Document3D.shadedWireframe:=TRUE;
//Делаем КОМПАС видимым
kompas.Visible:=

pr0100

#1
Сам макрос можете взять по ссылке, разработчик попросил выложить, модель думаю сможете сами построить:
http://vk.com/topic-29994774_26653498?post=49573


Не много видоизмененный код:

# -*- coding: cp1251 -*-
#|Модель

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

iDocument3D = iKompasObject.ActiveDocument3D()
dv=250 #Управляющие переменная диаметром
hv=400 #Управляющая переменная высоты
#Получаем интерфейс компонента
iPart = iDocument3D.GetPart(LDefin3D.pTop_Part)
#Получаем массив переменных модели
VariableCollection = iPart.VariableCollection()
#Изменяем значение переменной D
Variable = VariableCollection.GetByName('D',True,True)
Variable.value = dv
#Изменяем значение переменной H
Variable = VariableCollection.GetByName('H',True,True)
Variable.value = hv
#Перестраиваем модель
iPart.RebuildModel()
#Перерисовываем документ
iDocument3D.RebuildDocument()
+ Благодарностей: 2

pr0100

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

+ Благодарностей: 1