/// <summary> /// Построение модели /// </summary> /// <param name="ksEntityDraw"></param> /// <param name="ksEntityPlaneOffset"></param> private void CreatSketchFiveMethod (ksEntity ksEntityDraw, ksEntity ksEntityPlaneOffset) { ksSketchDefinition ksSketchDefinition; ksDocument2D _ksDocument2D; const int paramRactangle = 11; ksSketchDefinition = (ksSketchDefinition)ksEntityDraw. GetDefinition(); ksSketchDefinition.SetPlane(ksEntityPlaneOffset); ksRectangleParam ksRectangleParam = (ksRectangleParam)_kompasObject. GetParamStruct((int)StructType2DEnum. ko_RectangleParam); ksRectangleParam.ang = 0; ksRectangleParam.height = 8; ksRectangleParam.width = -mouseSetting. FrontOfTheMouseProperty / _magicPointTwo + _magicPoint; ksRectangleParam.style = 1; ksRectangleParam.x = mouseSetting.LengthOfMouseProperty - paramRactangle; ksRectangleParam.y = -4; ksEntityDraw.Create(); _ksDocument2D = (ksDocument2D)ksSketchDefinition.BeginEdit(); _ksDocument2D.ksRectangle(ksRectangleParam, 0); ksSketchDefinition.EndEdit(); }
/// <summary> /// Создание 4-го эскиза /// </summary> /// <param name="part"></param> private void CreatSketchFourMethod(ksEntity ksEntityDraw, ksEntity ksEntityPlaneOffset) { ksSketchDefinition ksSketchDefinition; ksDocument2D _ksDocument2D; ksSketchDefinition = (ksSketchDefinition)ksEntityDraw. GetDefinition(); ksSketchDefinition.SetPlane(ksEntityPlaneOffset); ksRectangleParam ksRectangleParam = (ksRectangleParam)_kompasObject.GetParamStruct ((int)StructType2DEnum.ko_RectangleParam); ksRectangleParam.ang = 0; ksRectangleParam.height = 0.5; ksRectangleParam.width = mouseSetting.LengthOfMouseProperty - _magicPoint; ksRectangleParam.style = 1; ksRectangleParam.x = mouseSetting.BackOfTheMouseProperty + 1; ksRectangleParam.y = 0; ksEntityDraw.Create(); _ksDocument2D = (ksDocument2D)ksSketchDefinition.BeginEdit(); _ksDocument2D.ksRectangle(ksRectangleParam, 0); ksSketchDefinition.EndEdit(); }
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> /// Set rectangle param /// </summary> /// <param name="kompas">KompasObject</param> /// <param name="width">Rectangle width</param> /// <param name="height">Rectangle height</param> /// <param name="point2D">2D point of rectangle position on sketch</param> public RectangleParameter(KompasApplication kompasApp, double width, double height, KompasPoint2D point2D) { if (kompasApp == null || point2D.LastErrorCode != ErrorCodes.OK ) { _lastErrorCode = ErrorCodes.ArgumentNull; return; } if (width <= 0.0 || !DoubleValidator.Validate(width) || height <= 0.0 || !DoubleValidator.Validate(height) || !DoubleValidator.Validate(point2D.X) || !DoubleValidator.Validate(point2D.Y) ) { _lastErrorCode = ErrorCodes.ArgumentInvalid; return; } ksRectangleParam rectangleParam; rectangleParam = kompasApp.KompasObject.GetParamStruct((short)StructType2DEnum.ko_RectangleParam); rectangleParam.width = width; rectangleParam.height = height; rectangleParam.ang = 0; rectangleParam.style = 1; // Line style rectangleParam.x = point2D.X; rectangleParam.y = point2D.Y; if (rectangleParam == null) { _lastErrorCode = ErrorCodes.EntityDefinitionNull; return; } _rectangleParam = rectangleParam; }
// Работа с документом private void WorkDocument() { doc = (ksDocument2D)kompas.Document2D(); ksDocumentParam docPar = (ksDocumentParam)kompas.GetParamStruct((short)StructType2DEnum.ko_DocumentParam); ksDocumentParam docPar1 = (ksDocumentParam)kompas.GetParamStruct((short)StructType2DEnum.ko_DocumentParam); if ((docPar != null) & (docPar1 != null)) { /*docPar.fileName = @"c:\2.cdw"; * docPar.comment = "Create document"; * docPar.author = "User";*/ docPar.regime = 0; docPar.type = (short)DocType.lt_DocFragment; /*ksSheetPar shPar = (ksSheetPar)docPar.GetLayoutParam(); * if (shPar != null) * { * shPar.shtType = 1; * shPar.layoutName = string.Empty; * ksStandartSheet stPar = (ksStandartSheet)shPar.GetSheetParam(); * }*/ // Создали документ: лист, формат А4, горизонтально расположенный // и с системным штампом 1 doc.ksCreateDocument(docPar); //int number = 0; ksViewParam par = (ksViewParam)kompas.GetParamStruct((short)StructType2DEnum.ko_ViewParam); ksRectangleParam par1 = (ksRectangleParam)kompas.GetParamStruct((short)StructType2DEnum.ko_RectangleParam); if (par != null) { /*number = 2; * par.Init(); * par.x = 0; * par.y = 0; * //par.scale_ = 0.5; * //par.angle = 45; * par.color = Color.FromArgb(10, 20, 10).ToArgb(); * par.state = ldefin2d.stACTIVE; * //par.name = "User view"; * // У документа создадим вид с номером 2, масштабом 0.5, под углом 45 гр * doc.ksCreateSheetView(par, ref number); * * // Создадим слой с номером 5 * //doc.ksLayer(5);*/ par1.x = 0; par1.y = 0; par1.height = 100; par1.width = 200; doc.ksRectangle(par1); doc.ksLineSeg(20, 10, 40, 10, 1); doc.ksLineSeg(40, 10, 40, 30, 1); doc.ksLineSeg(40, 30, 20, 30, 1); doc.ksLineSeg(20, 30, 20, 10, 1); /*kompas.ksMessage("Нарисовали"); * * Получить параметры документа * doc.ksGetObjParam(doc.reference, docPar1, ldefin2d.ALLPARAM); * ksSheetPar shPar1 = (ksSheetPar)docPar1.GetLayoutParam(); * if (shPar1 != null) * { * ksStandartSheet stPar1 = (ksStandartSheet)shPar.GetSheetParam(); * if (stPar1 != null) * { * short direct = 0; * if (stPar1.direct) * direct = 1; * string buf = string.Format("Type = {0}, f = {1}, m = {2}, d = {3}", docPar1.type, stPar1.format, stPar1.multiply, direct); * kompas.ksMessage(buf); * } * } * * kompas.ksMessage(docPar1.fileName); * kompas.ksMessage(docPar1.comment); * kompas.ksMessage(docPar1.author); * * // Cохраним документ * doc.ksSaveDocument(string.Empty); * //Закрыть документ * doc.ksCloseDocument();*/ } } }
public void CreateHandle(ksPart iPart, KompasObject _kompas, TeaPotParams teaPotParams) { double spout = (teaPotParams.TeaPotDiameter / 5); double offset = teaPotParams.TeaPotHeight - spout * 1.5; // Offset 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 par2 = (ksRectangleParam)_kompas.GetParamStruct((short)StructType2DEnum.ko_RectangleParam); par2.width = 40; //spoutLength par2.height = width; // spoutWidth. par2.x = -(teaPotParams.TeaPotDiameter / 2) - 10 - (par2.width / 2); par2.y = -(par2.height / 2); par2.style = 1; // При нуле не видно деталь. iDocument2D.ksRectangle(par2); // Закончить редактировать эскиз iDefinitionSketch.EndEdit(); int X = Convert.ToInt32(teaPotParams.TeaPotHandleColor); ExctrusionSketch(iPart, iSketch, height, true, X); //PART 2 double offset2 = teaPotParams.TeaPotHeight - teaPotParams.TeaPotHandleSize; // Offset 25 double width2 = spout; // spoutWidth double height2 = teaPotParams.TeaPotHeight - offset2 - spout / 2; // spoutHeigth ksEntity iSketch2; ksSketchDefinition iDefinitionSketch2; CreateSketch(out iSketch2, out iDefinitionSketch2, offset2); // Интерфейс для рисования = на скетче; ksDocument2D iDocument2D2 = (ksDocument2D)iDefinitionSketch2.BeginEdit(); // Построить прямоугольник (x1,y1, x2,y2, style) ksRectangleParam par3 = (ksRectangleParam)_kompas.GetParamStruct((short)StructType2DEnum.ko_RectangleParam); par3.width = spout; //spoutLength par3.height = width2; // spoutWidth. par3.x = -(teaPotParams.TeaPotDiameter / 2) - 10 - par3.width - (par3.width / 2); par3.y = -(par3.height / 2); par3.style = 1; // При нуле не видно деталь. iDocument2D2.ksRectangle(par3); // Закончить редактировать эскиз iDefinitionSketch2.EndEdit(); int X1 = Convert.ToInt32(teaPotParams.TeaPotHandleColor); ExctrusionSketch(iPart, iSketch2, height2, true, X1); Fillet(iPart, 10, spout / 4, teaPotParams); Fillet(iPart, 11, spout / 4, teaPotParams); Fillet(iPart, 12, 0.1, teaPotParams); Fillet(iPart, 13, spout / 2, teaPotParams); Fillet(iPart, 14, spout / 2, teaPotParams); }