override public void drawCells() { //получить грани бобышки faces = bodyDrawer.GetFacesArray(); //выбрать вторую (вверх бобышки) var ent = faces.GetValue(1) as Entity; //выбрать верхнюю грань ent.Select(true); //добавить на неё эскиз swSketchManager.InsertSketch(false); // Получаем объект эскиза, на котором будем рисовать activeSketch = application.swModel.GetActiveSketch2(); //cells //Определяем положение центра верхней левой ячейки относительно центра плоскости (0, 0, 0) double x_current = (-body.GetWidth()) / 2.0 + (cellObj.GetK() + cellObj.GetCellsWidth() / 2.0); double y_current = (body.GetLenght() / 2.0) - (cellObj.GetK() + (cellObj.GetCellsLenght() / 2.0)); //Определяем положение правого нижнего угла ячейки double x_end = ((-body.GetWidth()) / 2.0) + (cellObj.GetK() + cellObj.GetCellsWidth()); double y_end = (body.GetLenght() / 2.0) - (cellObj.GetK() + cellObj.GetCellsLenght()); //Запоминаем позицию для дальнейшего использования double leftHoleCenterX = x_current, leftHoleCenterY = y_current; //Сдвиг, расстояние от центра одной ячейки до центра другой по координате Х double delta = cellObj.GetCellsWidth() + cellObj.GetK(); //Определяем количество ячеек в зависимости от итерации int row = cellObj.GetRowsNumber(), column = cellObj.GetColumnsNumber(); for (int i = 0; i < row; i++) { //Рисуем первую в ряду ячейку application.swModel.SketchManager.CreateCenterRectangle(x_current, y_current, 0, x_end, y_end, 0); //Рисуем остальные for (int j = 1; j < column; j++) { x_current = x_current + delta; x_end = x_end + delta; application.swModel.SketchManager.CreateCenterRectangle(x_current, y_current, 0, x_end, y_end, 0); } //Возвращаемся к первой ячейке x_current = leftHoleCenterX; //Сдвигаемся по координате Y y_current = leftHoleCenterY - (cellObj.GetK() + cellObj.GetCellsLenght()); //Запоминаем координаты leftHoleCenterX = x_current; leftHoleCenterY = y_current; //Определяем положение правого нижнего угла ячейки x_end = x_current + (cellObj.GetCellsWidth() / 2.0); y_end = y_current + (cellObj.GetCellsLenght() / 2.0); } //Получаем объект "вырез" cut = featureCut(cellObj.GetCellsHeight()); application.swModel.ClearSelection(); }
private string writeResults(RectangleCells dataCells) { string result = ""; result += "Степень матрицы - " + dataCells.GetColumnsNumber(); result += Environment.NewLine; result += "Количество углов - " + dataCells.GetAnglesN(); result += Environment.NewLine; result += "Обьём тела - " + FreeClass.body.GetV();; result += Environment.NewLine; result += "Обьём структуры - " + dataCells.GetCellsV(); result += Environment.NewLine; result += "Часть от объёма - " + (dataCells.GetCellsV() * 100) / FreeClass.body.GetV(); result += Environment.NewLine; result += "Площадь структуры - " + dataCells.GetSCells(); result += Environment.NewLine; result += "Площадь 1 ячейки - " + dataCells.GetS1(); result += Environment.NewLine; result += "Ширина 1 ячейки - " + dataCells.GetCellsWidth(); result += Environment.NewLine; result += "Длинна 1 ячейки - " + dataCells.GetCellsLenght(); result += Environment.NewLine; //result += "Локаль - " + dataCells.GetLocal(); result += Environment.NewLine; //result += "Радиус вписаной в локаль окружности - " + dataCells.GetRadius(); result += Environment.NewLine; //result += "Сторона вписанного в окружность многоулольника - " + dataCells.GetSide(); result += Environment.NewLine; result += "K = " + dataCells.GetK(); result += Environment.NewLine; result += "Максимальное соотношение - " + AbstractRelationAngle.maxCoef; result += Environment.NewLine; result += "Доступность построения - " + dataCells.isAvailable(); result += Environment.NewLine; return(result); }