/// <summary> /// Get already active Kompas application /// </summary> /// <returns>true if operation successful, false in case of error</returns> private bool GetActiveApp() { // Try to get an active app if (KompasObject == null) { try { KompasObject = (KompasObject)Marshal.GetActiveObject("KOMPAS.Application.5"); } catch { return(false); } } // Else application not loaded -- return if (KompasObject == null) { return(false); } KompasObject.Visible = true; KompasObject.ActivateControllerAPI(); return(true); }
/// <summary> /// Create 3D document /// </summary> /// <returns>true if operation successful; false in case of error</returns> public bool CreateDocument3D() { Document3D = (ksDocument3D)KompasObject.Document3D(); // Create build if (!Document3D.Create(false /*visible*/, false /*build*/)) { LastErrorCode = ErrorCodes.Document3DCreateError; return(false); } // Create screw detail on 3D document ScrewPart = (ksPart)Document3D.GetPart((short)Part_Type.pTop_Part); // Create nut detail on 3D document NutPart = (ksPart)Document3D.GetPart((short)Part_Type.pTop_Part); if (ScrewPart == null || NutPart == null ) { LastErrorCode = ErrorCodes.Document3DGetPartError; return(false); } return(true); }
/// <summary> /// Метод подключения к компасу /// </summary> public void Connector() { var type = Type.GetTypeFromProgID("KOMPAS.Application.5"); KompasObject = (KompasObject)Activator.CreateInstance(type); KompasObject.Visible = true; }
public void Build(ksPart iPart, KompasObject _kompas, TeaPotParams teaPotParams) { this.iPart = iPart; CreateBody(iPart, _kompas, teaPotParams); CreateSpout(iPart, _kompas, teaPotParams); CreateHandle(iPart, _kompas, teaPotParams); }
public void CreateSpout(ksPart iPart, KompasObject _kompas, TeaPotParams teaPotParams) { double spout = (teaPotParams.TeaPotDiameter / 5); double offset = teaPotParams.TeaPotHeight - spout * 1.5; double width = spout; // spoutWidth double height = spout; // spoutHeigth ksEntity iSketch; ksSketchDefinition iDefinitionSketch; CreateSketch(out iSketch, out iDefinitionSketch, offset); // Интерфейс для рисования = на скетче; ksDocument2D iDocument2D = (ksDocument2D)iDefinitionSketch.BeginEdit(); // Построить прямоугольник (x1,y1, x2,y2, style) ksRectangleParam par1 = (ksRectangleParam)_kompas.GetParamStruct((short)StructType2DEnum.ko_RectangleParam); par1.x = (teaPotParams.TeaPotDiameter / 2) - 5; par1.height = width; // spoutWidth. par1.y = -(par1.height / 2); par1.width = teaPotParams.TeaPotSpoutLength; //spoutLength par1.style = 1; // При нуле не видно деталь. iDocument2D.ksRectangle(par1); // Закончить редактировать эскиз iDefinitionSketch.EndEdit(); int X = Convert.ToInt32(teaPotParams.TeaPotHandleColor); ExctrusionSketch(iPart, iSketch, height, true, X); Fillet(iPart, 7, width / 2, teaPotParams); }
/// <summary> /// Подключение к экземпляру компас 3Д /// Если экземпляр есть создан, /// то подключиться к существующему /// Если экземпляр не создан, /// то создать и подключиться к новому /// </summary> /// <returns>Экземпляр KompasObject</returns> private KompasObject OpenKompas3D() { //Начальное присвоение KompasObject kompas = null; //Экзмпляр уже существует //Отображение необходимо в каждом случае //так как возможна ошибка при подключении //к уже закрытому экземпляру try { kompas = (KompasObject)Marshal.GetActiveObject("KOMPAS.Application.5"); kompas.Visible = true; } //Создание нового экзмепляра catch { Type t = Type.GetTypeFromProgID("KOMPAS.Application.5"); kompas = (KompasObject)Activator.CreateInstance(t); kompas.Visible = true; } finally { //Активация API созданного экземпляра КОМПАС 3Д kompas.ActivateControllerAPI(); } return(kompas); }
/// <summary> /// Конструктор с параметром. /// </summary> /// <param name="kompas">Интерфейс объекта КОМПАС.</param> public MainWindow(KompasObject kompas) { InitializeComponent(); InitializeVariables(); _manager = new Manager(kompas); }
/*[TestCase(2, TestName = "Тестирование при построении 2 документа-модели")] * [TestCase(3, TestName = "Тестирование при построении 3 документа-модели")] * [TestCase(4, TestName = "Тестирование при построении 4 документа-модели")] * [TestCase(5, TestName = "Тестирование при построении 5 документа-модели")] * [TestCase(6, TestName = "Тестирование при построении 6 документа-модели")] * [TestCase(7, TestName = "Тестирование при построении 7 документа-модели")] * [TestCase(8, TestName = "Тестирование при построении 8 документа-модели")] * [TestCase(9, TestName = "Тестирование при построении 9 документа-модели")] * [TestCase(10, TestName = "Тестирование при построении 10 документа-модели")] * [TestCase(11, TestName = "Тестирование при построении 5 документа-модели")] * [TestCase(12, TestName = "Тестирование при построении 6 документа-модели")] * [TestCase(13, TestName = "Тестирование при построении 7 документа-модели")] * [TestCase(14, TestName = "Тестирование при построении 8 документа-модели")] * [TestCase(15, TestName = "Тестирование при построении 9 документа-модели")] * [TestCase(16, TestName = "Тестирование при построении 10 документа-модели")]*/ public void CreateTestLoad(int count) { var param = new Parameters(); param.Radios1 = 20; param.Radios2 = 15; param.Lenght1 = 70; param.Lenght2 = 100; param.Angle1 = 6; param.Angle2 = 45; if (kompas == null) { Type t = Type.GetTypeFromProgID("KOMPAS.Application.5"); kompas = (KompasObject)Activator.CreateInstance(t); } if (kompas != null) { kompas.Visible = true; kompas.ActivateControllerAPI(); } for (int i = 1; i <= count; i++) { var product = new CreatorDetail(kompas); product.DownCircle(param); product.MiddleCircle(param); product.UpCircle(param); product.CreateChamfer(param); product.FlatPart(param); } }
public static void Init() { string progID = "KOMPAS.Application.5"; try { object COMObject = Marshal.GetActiveObject(progID); if (COMObject != null) { _kompasObject = (KompasObject)COMObject; } } catch (COMException e) { } if (_kompasObject == null) { Type t = Type.GetTypeFromProgID(progID); _kompasObject = (KompasObject)Activator.CreateInstance(t); _kompasObject.Visible = true; } if (_kompasObject != null) { _IApplication = _kompasObject.ksGetApplication7(); } KompasVersion = _IApplication.ApplicationName[true]; AppVersNOTValid = Convert.ToBoolean(string.Compare(KompasVersion, KompasVersionFlag)); AppVersNOTValidStrong = System.Text.RegularExpressions.Regex.IsMatch(KompasVersion, KompasVersionFlag); }
/// <summary> /// Кнопка построения /// </summary> private void BuildButton_Click(object sender, EventArgs e) { try { Parameters parameters = new Parameters(Convert.ToDouble(diamBracingTextBox.Text), Convert.ToDouble(diamHeadTextBox.Text), Convert.ToDouble(diamLegTextBox.Text), Convert.ToDouble(lengthBracingTextBox.Text), Convert.ToDouble(lengthHeadTextBox.Text), Convert.ToDouble(lengthLegTextBox.Text), Convert.ToString(threadComboBox.Text)); if (_kompas != null) { DetailBuilder detailBuilder = new DetailBuilder(_kompas); detailBuilder.BuildDetail(parameters); } if (_kompas == null) { _kompasConnector.Connector(); _kompas = _kompasConnector.KompasObject; BuildButton.Enabled = true; DetailBuilder detailBuilder = new DetailBuilder(_kompas); detailBuilder.BuildDetail(parameters); } } catch (ArgumentException exeption) { MessageBox.Show(exeption.Message); } }
/// <summary> /// Запуск Компас-3D /// </summary> public void StartKompas() { try { if (_kompas != null) { _kompas.Visible = true; _kompas.ActivateControllerAPI(); } if (_kompas == null) { Type kompasType = Type.GetTypeFromProgID ("KOMPAS.Application.5"); _kompas = (KompasObject)Activator.CreateInstance (kompasType); StartKompas(); if (_kompas == null) { throw new Exception("Не удается открыть Koмпас-3D"); } } } catch (COMException) { _kompas = null; StartKompas(); } }
/// <summary> /// Конструктор /// </summary> /// <param name="document3D"></param> /// <param name="kompas"></param> /// <param name="infAir"></param> public CreatingModel(ksDocument3D document3D, KompasObject kompas, InfAirliner infAir) { _doc3D = document3D; _kompasObj = kompas; _infAirliner = infAir; _part = (ksPart)_doc3D.GetPart((short)Part_Type.pTop_Part); }
/// <summary> /// Головная функция библиотеки /// </summary> /// <param name="command">Номер команды в меню</param> /// <param name="mode">Режим работы</param> /// <param name="kompas">интерфейс KompasObject</param> public void ExternalRunCommand([In] short command, [In] short mode, [In, MarshalAs(UnmanagedType.IDispatch)] object kompas) { _kompas = (KompasObject)kompas; if (_kompas != null) { _doc3 = (ksDocument3D)_kompas.ActiveDocument3D(); if (_doc3 == null || _doc3.reference == 0) { _doc3 = (ksDocument3D)_kompas.Document3D(); _doc3.Create(true, true); _doc3.comment = "Зубчатое колесо"; _doc3.drawMode = 3; _doc3.perspective = true; _doc3.UpdateDocumentParam(); } switch (command) { case 1: PluginFrm.Instanse.Plugin = this; PluginFrm.Instanse.ShowDialog(); break; } } }
/// <summary> /// Метод для запуска КОМПАС-3D /// </summary> private void StartKompas() { try { if (_kompas != null) { _kompas.Visible = true; _kompas.ActivateControllerAPI(); } if (_kompas == null) { //Возвращает тип, связанный с указанным идентификатором ProgID var t = Type.GetTypeFromProgID("KOMPAS.Application.5"); _kompas = (KompasObject)Activator.CreateInstance(t); StartKompas(); if (_kompas == null) { throw new Exception("Нет связи с Kompas3D."); } } } catch (COMException) { _kompas = null; StartKompas(); } }
public void initialize() { toolStripLabel = new ToolStripLabel(); errorMessage = new StatusMessage(toolStripLabel); _kompasObject = (KompasObject)null; calcAndBuild = new CalcAndBuild(); }
internal KompasModel() { Type t = Type.GetTypeFromProgID("KOMPAS.Application.5"); kompas = (KompasObject)Activator.CreateInstance(t); kompas.ActivateControllerAPI(); }
public void act() { Type c = Type.GetTypeFromProgID("KOMPAS.Application.5"); kompas = (KompasObject)Activator.CreateInstance(c); documentParam = (ksDocumentParam)kompas.GetParamStruct((short)StructType2DEnum.ko_DocumentParam); //для активации нового листа и добавление рамки к чертежу documentParam.type = (int)DocType.lt_DocSheetStandart; documentParam.regime = 0; sheetPar = (ksSheetPar)documentParam.GetLayoutParam(); str = kompas.ksSystemPath(0) + @"\graphic.lyt"; sheetPar.layoutName = str; sheetPar.shtType = 1; standartSheet = (ksStandartSheet)sheetPar.GetSheetParam(); standartSheet.direct = true; standartSheet.format = 3; standartSheet.multiply = 1; dock = (ksDocument2D)kompas.Document2D(); dock.ksCreateDocument(documentParam); //dock = (ksDocument2D)kompas.Document2D(); // ДЛЯ СТАРОГО КОМПАСА //dock.ksCreateDocument(documentParam); // ДЛЯ СТАРОГО КОМПАСА //sheetOptions = (ksSheetOptions)kompas.GetParamStruct((short)StructType2DEnum.ko_SheetOptions); // ДЛЯ СТАРОГО КОМПАСА //dock.ksGetDocOptions(SHEET_OPTIONS_EX, sheetOptions); // ДЛЯ СТАРОГО КОМПАСА //sheetOptions.sheetType = false; // ДЛЯ СТАРОГО КОМПАСА //standartSheet = (ksStandartSheet)sheetOptions.GetSheetParam(false); // ДЛЯ СТАРОГО КОМПАСА //standartSheet.format = 3; // ДЛЯ СТАРОГО КОМПАСА //standartSheet.direct = true; // ДЛЯ СТАРОГО КОМПАСА //sheetOptions.sheetType = true; // ДЛЯ СТАРОГО КОМПАСА //dock.ksSetDocOptions(SHEET_OPTIONS_EX, sheetOptions); // ДЛЯ СТАРОГО КОМПАСА kompas.Visible = true; }
/// <summary> /// Параметризированный конструктор /// </summary> /// <param name="kompas">Объект Компас API</param> public CreateBushing(KompasObject kompas) { _kompas = kompas; var document = (ksDocument3D)kompas.Document3D(); document.Create(); }
/// <summary> /// метод для запуска и открытия компаса в одном окне /// </summary> private void StartAndConnectToKompas() { try { if (_kompas != null) { _kompas.Visible = true; _kompas.ActivateControllerAPI(); } if (_kompas == null) { var t = Type.GetTypeFromProgID("KOMPAS.Application.5"); _kompas = (KompasObject)Activator.CreateInstance(t); StartAndConnectToKompas(); if (_kompas == null) { throw new Exception("Нет связи с Kompas3D."); } } } catch (COMException) { _kompas = null; StartAndConnectToKompas(); } }
/// <summary> /// Обнуление компаса /// </summary> public void KompasReset() { var test = ""; test = "test"; _kompas = null; }
/// <summary> /// Метод запуска Компас в режиме детали, инициализации свойств Document3D, KompasPart и KompasObject /// </summary> public void InitializationKompas() { try { if (KompasObject != null) { Document3D.close(); } if (KompasObject == null) { #if __LIGHT_VERSION__ Type t = Type.GetTypeFromProgID("KOMPASLT.Application.5"); #else Type t = Type.GetTypeFromProgID("KOMPAS.Application.5"); #endif KompasObject = (KompasObject)Activator.CreateInstance(t); } Document3D = (Document3D)KompasObject.Document3D(); Document3D.Create(false, true); KompasPart = (ksPart)Document3D.GetPart((short)Part_Type.pTop_Part); KompasObject.Visible = true; KompasObject.ActivateControllerAPI(); } catch (Exception e) { KompasObject = null; InitializationKompas(); } }
public void LoadKompas() { const string programmId = "KOMPAS.Application.5"; var t = Type.GetTypeFromProgID(programmId); try { updateStatus("Ищу запущеный КОМПАС-3D"); _kompas = (KompasObject)Marshal.GetActiveObject(programmId); _kompas.Visible = true; _kompas.ActivateControllerAPI(); _hWnd = _kompas.ksGetHWindow(); updateStatus("КОМПАС-3D запущен!"); SetForegroundWindow((IntPtr)_hWnd); } catch { try { updateStatus("Запускаю КОМПАС-3D"); _kompas = (KompasObject)Activator.CreateInstance(t); _kompas.Visible = true; _kompas.ActivateControllerAPI(); _hWnd = _kompas.ksGetHWindow(); updateStatus("КОМПАС-3D запущен!"); SetForegroundWindow((IntPtr)_hWnd); } catch (Exception ex) { MessageBox.Show("Не удалось запустить приложение: \n" + ex.Message); } } }
/// <summary> /// Запуск KOMPAS если он не запущен. /// </summary> public void StartKompas() { if (_kompas == null) { Type kompasType = Type.GetTypeFromProgID("KOMPAS.Application.5"); _kompas = (KompasObject)Activator.CreateInstance(kompasType); } if (_kompas != null) { try { _kompas.Visible = true; } catch (System.Runtime.InteropServices.COMException) { Type kompasType = Type.GetTypeFromProgID("KOMPAS.Application.5"); _kompas = (KompasObject)Activator.CreateInstance(kompasType); _kompas.Visible = true; } _kompas.ActivateControllerAPI(); } }
/// <summary> /// Метод для выгрузки и выхода из компаса /// </summary> public void UnloadKompas() { if (KompasObject != null) { KompasObject.Quit(); Marshal.ReleaseComObject(KompasObject); } }
/// <summary> /// Метод построения детали /// </summary> public void BuildDrum(DrumDescription objDescription) { // Экземпляру присваиваем значение объекта класса _description = objDescription; // Присваивание параметров var kadloHeight = _description.KadloHeight; var kadloRadius = _description.KadloDiameter / 2; var kadloThickness = _description.KadloThickness; var thicknessTopDrumhead = _description.ThicknessTopDrumhead; var thicknessBottomDrumhead = _description.ThicknessBottomDrumhead; var rimWidth = _description.RimWidth; var rimRadius = rimWidth + kadloRadius; var rimHalfWidth = rimWidth / 2; var rimHeight = _description.RimHeight; var rimCenter = rimRadius - rimHalfWidth; var numberMounting = _description.NumberMounting; var radiusHole = _description.DiametrHole / 2; var squareSide = _description.SquareSide; var triangleSide = _description.triangleSide; var ExistHoleInKadlo = _description.ExistHoleInKadlo; var circle = _description.Circle; var square = _description.Square; var triangle = _description.Triangle; var ExistSnare = _description.ExistSnare; var stringSnare = _description.StringSnare; //Методы класса DrumBuilder if (_kompas == null) { Type t = Type.GetTypeFromProgID("KOMPAS.Application.5"); _kompas = (KompasObject)Activator.CreateInstance(t); } if (_kompas != null) { _kompas.Visible = true; _kompas.ActivateControllerAPI(); } CreateKadlo(kadloRadius, kadloHeight, kadloThickness); CreateDrumhead(kadloHeight, kadloRadius, thicknessTopDrumhead, thicknessBottomDrumhead); CreateRim(kadloHeight, thicknessTopDrumhead, thicknessBottomDrumhead, rimRadius, rimWidth, rimHeight); CreateHolesInRim(kadloHeight, rimCenter, numberMounting); CreateHolesInRim2(kadloHeight, thicknessTopDrumhead, rimCenter, numberMounting); CreateMountong(kadloHeight, thicknessTopDrumhead, thicknessBottomDrumhead, rimCenter, numberMounting); // Если выбран параметр "Наличие отверстия в кадле", вызывается метод его посторения if (ExistHoleInKadlo == true) { CreateHoleInKadlo(kadloHeight, circle, square, triangle, radiusHole, squareSide, triangleSide); } // Если выбран параметр "Наличие подструнника", вызывается метод его посторения if (ExistSnare == true) { CreateSnare(ExistSnare, stringSnare, kadloRadius, thicknessBottomDrumhead); } }
//private int PosPart = 1; public FormPathKMD(int pos, KompasObject kompas) //конструктор формы создания детали { InitializeComponent(); kompas5 = kompas; flag = true; this.Text = "Редактор данных деталей ОЭ - Новая деталь"; numPosPart.Value = pos; chMassPart.Checked = false; }
/// <summary> /// Конструктор класса BuilderModel /// </summary> /// <param name="parameters">Параметры модели грифа</param> /// <param name="kompas">Экзепляр Компас 3Д</param> public BuilderModel(ModelParameters parameters, KompasObject kompas) { //Получение параметров модели грифа _modelelParameters = parameters; //Получение объекта KOMPAS 3D _kompasObject = kompas; //Создание модели грифа CreateModel(); }
public void StartKompas() { if (_kompas == null) { var type = Type.GetTypeFromProgID("KOMPAS.Application.5"); _kompas = (KompasObject)Activator.CreateInstance(type); _kompas.Visible = true; _kompas.ActivateControllerAPI(); } }
/// <summary> /// Включает и подключает Компас 3D. /// </summary> private void ConnectToKompas() { var t = Type.GetTypeFromProgID("KOMPAS.Application.5"); _kompas = (KompasObject)Activator.CreateInstance(t); _kompas.Visible = true; _kompas.ActivateControllerAPI(); }
/// <summary> /// Unset object of program /// </summary> public void DestructApp() { KompasObject.Quit(); KompasObject = null; Document3D = null; ScrewPart = null; LastErrorCode = ErrorCodes.OK; }
public bool InitKompas(out string result) { result = string.Empty; try { var t = Type.GetTypeFromProgID("KOMPAS.Application.5"); _kompasObj = (KompasObject)Activator.CreateInstance(t); _kompasApp = (_Application)_kompasObj.ksGetApplication7(); if (_kompasApp == null) return false; } catch { result = "Error: Компас не установлен"; AddLog(result); return false; } result = string.Empty; return true; }
public MainForm(KompasObject kompas) { this.InitializeComponent(); this.interpretator = new Interpretator(kompas); }
public void Dispose() { if (_kompasObj == null) return; Marshal.ReleaseComObject(_kompasObj); _kompasObj = null; }
/// <summary> /// Конструктор класса <see cref="KompasWrapper"/> /// </summary> /// <param name="kompas">экземпляр компаса</param> public KompasWrapper(KompasObject kompas) { this.kompas = kompas; }
/// <summary> /// Инициализация интерпретатора /// <param name="kompas">экземпляр Компас 3D</param> /// </summary> private void initLua(KompasObject kompas) { this.lua["kompas"] = new KompasWrapper(kompas); // this.lua.DoString(ResourceManager.GetScript("Common", "CLRPackage.lua")); }
/// <summary> /// Конструктор класса <see cref="Interpretator"/> /// <param name="kompas">экземпляр Компас 3D</param> /// </summary> public Interpretator(KompasObject kompas) { lua = new Lua(); initLua(kompas); }