private bool SaveCDW_in_Rastr(Document2D doc) { DocumentParam docP = (DocumentParam)kompas.GetParamStruct((short)StructType2DEnum.ko_DocumentParam); if (docP == null) { kompas.ksMessage("Не удалось получить интерфейс DocumentParam"); return(false); } int t = doc.ksGetObjParam(doc.reference, docP); string filename = docP.fileName; filename = filename.Substring(0, filename.Length - 4); RasterFormatParam formatRasret = doc.RasterFormatParam(); //if (formatRasret.Init()) //{ // kompas.ksMessage("Обнулились параметры RasterFormatParam"); //} if (formatRasret == null) { return(false); } if (setting.Format == 20) { formatRasret.format = 4; } else { formatRasret.format = setting.Format; } formatRasret.colorBPP = setting.ColorBPP; formatRasret.colorType = setting.ColorType; formatRasret.extResolution = setting.Resolution; formatRasret.extScale = setting.Scale; formatRasret.greyScale = false; formatRasret.onlyThinLine = false; formatRasret.multiPageOutput = multiTiff; if (kolLists == 1 || multiTiff) { string fileTiff_f = filename + "." + ConvertFormat(setting.Format); if (!doc.SaveAsToRasterFormat(fileTiff_f, formatRasret)) { return(false); } return(true); } for (int i = 1; i < kolLists + 1; i++) { string fileName_f = filename; string fileTiff_f = fileName_f + "." + ConvertFormat(setting.Format); formatRasret.pages = i.ToString() + "-" + i.ToString(); fileTiff_f = fileName_f + "(" + i.ToString() + ")" + "." + ConvertFormat(setting.Format); if (!doc.SaveAsToRasterFormat(fileTiff_f, formatRasret)) { return(false); } } return(true); }
private void bConvertAllDrawing_Click(object sender, EventArgs e) { TestConnectKompas(); if (!flag_Kompas) { return; } Documents docs = kompas7.Documents; int k = docs.Count; if (k == 0) { kompas.ksMessage("Нет открытых документов"); return; } for (int i = 0; i < k; i++) { KompasDocument kdoc = (KompasDocument)docs[i]; if (kdoc.DocumentType == DocumentTypeEnum.ksDocumentDrawing) { kolLists = 1; ILayoutSheets lists = kdoc.LayoutSheets; kolLists = lists.Count; //if (kolLists > 1) //{ // kompas.ksMessage("Количество листов в документе: " + kolLists.ToString()); //} Document2D doc2 = kompas.Document2D(); doc2 = kompas.TransferInterface(kdoc, (int)ksAPITypeEnum.ksAPI5Auto, 0); if (doc2 == null) { kompas.ksMessage("Не удалось преобразовать объект"); return; } if (!SaveCDW_in_Rastr(doc2)) { kompas.ksMessage("Ошибка! Чертеж не переведен"); return; } } } kompas.ksMessage("Чертежи успешно переведены"); kolLists = 1; }
private void bConvertActiveDrawing_Click(object sender, EventArgs e) { TestConnectKompas(); if (!flag_Kompas) { return; } Document2D doc = kompas.ActiveDocument2D(); if (doc == null) { kompas.ksMessage("Активный документ не является чертежом."); return; } long typedoc = kompas.ksGetDocumentType(doc.reference); if ((typedoc < 1) || (typedoc > 2)) { kompas.ksMessage("Активный документ не является чертежом."); return; } KompasDocument kdoc = kompas.TransferInterface(doc, (int)ksAPITypeEnum.ksAPI7Dual, 0); if (kdoc == null) { kompas.ksMessage("Не удалось преобразовать объект"); return; } ILayoutSheets lists = kdoc.LayoutSheets; kolLists = lists.Count; //if (kolLists > 1) //{ // kompas.ksMessage("Количество листов в документе: " + kolLists.ToString()); //} if (!SaveCDW_in_Rastr(doc)) { kompas.ksMessage("Ошибка! Чертеж не переведен"); return; } kompas.ksMessage("Чертеж успешно переведен"); kolLists = 1; }
/// <summary> /// CСоздание резьбы на ножке /// </summary> /// <param name="diameterLeg">Диаметр ножки</param> /// <param name="lengthLeg">Длина ножки</param> /// <param name="diameterBracing">Диаметр крепления</param> /// <param name="lengthHead">Длина головки</param> private void BuildThreadLeg(double diameterLeg, double lengthLeg, double diameterBracing, double lengthHead) { #region Константы для резьбы const int part = -1; const int planeOffset = 14; const int sketch = 5; const int planeXOY = 1; const int cylindricspiral = 56; const int cutEvolution = 47; const int planeXOZ = 2; #endregion //Смещенеие плоскости _part = _doc3D.GetPart(part); ksEntity entityOffset = _part.NewEntity(planeOffset); ksPlaneOffsetDefinition planeDefinition = entityOffset.GetDefinition(); planeDefinition.offset = lengthHead; planeDefinition.direction = true; ksEntity EntityPlaneOffset = _part.GetDefaultEntity(planeXOY); planeDefinition.SetPlane(EntityPlaneOffset); entityOffset.Create(); //Построение спирали ksEntity entityCylinderic = _part.NewEntity(cylindricspiral); ksCylindricSpiralDefinition cylindricSpiral = entityCylinderic.GetDefinition(); cylindricSpiral.SetPlane(entityOffset); cylindricSpiral.buildDir = true; cylindricSpiral.buildMode = 1; cylindricSpiral.height = lengthLeg; cylindricSpiral.diam = diameterLeg; cylindricSpiral.firstAngle = 0; cylindricSpiral.turnDir = true; cylindricSpiral.step = 0.5; entityCylinderic.Create(); //Эскиз треуголника ksEntity Entity2 = _part.NewEntity(sketch); ksSketchDefinition sketchDefinition = Entity2.GetDefinition(); ksEntity Entity = _part.GetDefaultEntity(planeXOZ); sketchDefinition.SetPlane(Entity); Entity2.Create(); Document2D document2D = sketchDefinition.BeginEdit(); var StartX = diameterLeg / 2 - (diameterLeg / 100); // var StartY = -0.5 / 2 + 0.01; document2D.ksLineSeg(StartX, -lengthHead, diameterLeg - StartX, -lengthHead + StartY, 1); document2D.ksLineSeg(StartX, -lengthHead, diameterLeg - StartX, -lengthHead - StartY, 1); document2D.ksLineSeg(diameterLeg - StartX, -lengthHead + StartY, diameterLeg - StartX, -lengthHead - StartY, 1); sketchDefinition.EndEdit(); //Кинематическое вырезание ksEntity entityCutEvolution = _part.NewEntity(cutEvolution); ksCutEvolutionDefinition cutEvolutionDefinition = entityCutEvolution.GetDefinition(); cutEvolutionDefinition.cut = true; cutEvolutionDefinition.sketchShiftType = 1; cutEvolutionDefinition.SetSketch(sketchDefinition); ksEntityCollection EntityCollection = (cutEvolutionDefinition.PathPartArray()); EntityCollection.Clear(); EntityCollection.Add(entityCylinderic); entityCutEvolution.Create(); }