Пример #1
0
        public void TestHandleSizeGet_BadValue()
        {
            var wrongHandleSize = 94;
            var teapotParams    = new TeaPotParams(100, 150, 20, 95, TeaPotParams.TheColor.Green, TeaPotParams.TheColor.Blue);

            Assert.Throws <ArgumentException>(() => { teapotParams.TeaPotHandleSize = wrongHandleSize; }, "-");
        }
Пример #2
0
        public void TestDiameterGet_BadValue()
        {
            var wrongBodyDiameter = 99;
            var teapotParams      = new TeaPotParams(100, 150, 20, 95, TeaPotParams.TheColor.Green, TeaPotParams.TheColor.Blue);

            Assert.Throws <ArgumentException>(() => { teapotParams.TeaPotDiameter = wrongBodyDiameter; }, "-");
        }
Пример #3
0
        public void TestSpoutLengthGet_BadValue()
        {
            var wrongSpoutLength = 19;
            var teapotParams     = new TeaPotParams(100, 150, 20, 95, TeaPotParams.TheColor.Green, TeaPotParams.TheColor.Blue);

            Assert.Throws <ArgumentException>(() => { teapotParams.TeaPotSpoutLength = wrongSpoutLength; }, "-");
        }
Пример #4
0
        public void TestHeightGet_BadValue()
        {
            var wrongBodyHeight = 149;
            var teapotParams    = new TeaPotParams(100, 150, 20, 95, TeaPotParams.TheColor.Green, TeaPotParams.TheColor.Blue);

            Assert.Throws <ArgumentException>(() => { teapotParams.TeaPotHeight = wrongBodyHeight; }, "-");
        }
Пример #5
0
        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);
        }
Пример #6
0
        public void Fillet(ksPart iPart, int index, double radius, TeaPotParams teaPotParams)
        {
            // Получение интерфейса объекта скругление
            ksEntity entityFillet = (ksEntity)iPart.NewEntity((int)Obj3dType.o3d_fillet);
            // Получаем интерфейс параметров объекта скругление
            ksFilletDefinition filletDefinition = (ksFilletDefinition)entityFillet.GetDefinition();

            // Радиус скругления
            filletDefinition.radius = radius;
            // Не продолжать по касательным ребрам
            filletDefinition.tangent = true;
            // Получаем массив граней объекта
            ksEntityCollection entityCollectionPart = (ksEntityCollection)iPart.EntityCollection((int)Obj3dType.o3d_face);
            // Получаем массив скругляемых граней
            ksEntityCollection entityCollectionFillet = (ksEntityCollection)filletDefinition.array();

            entityCollectionFillet.Clear();

            //ksEntity ENT = entityCollectionFillet.GetByIndex(0);

            // Заполняем массив скругляемых объектов
            entityCollectionFillet.Add(entityCollectionPart.GetByIndex(index));

            // Создаем скругление
            int X = Convert.ToInt32(teaPotParams.TeaPotHandleColor);

            entityFillet.SetAdvancedColor(X, 2, 2, 2, 2, 1, 2);
            entityFillet.Create();
        }
Пример #7
0
 public void Build(ksPart iPart, KompasObject _kompas, TeaPotParams teaPotParams)
 {
     this.iPart = iPart;
     CreateBody(iPart, _kompas, teaPotParams);
     CreateSpout(iPart, _kompas, teaPotParams);
     CreateHandle(iPart, _kompas, teaPotParams);
 }
Пример #8
0
        public void TestHandleColorGet_CorrectValue()
        {
            var teapotParams = new TeaPotParams(100, 150, 20, 95, TeaPotParams.TheColor.Green, TeaPotParams.TheColor.Blue);
            var expected     = TeaPotParams.TheColor.Blue;
            var actual       = teapotParams.TeaPotHandleColor;

            Assert.AreEqual(expected, actual, "Геттер HandleColor возвращает неправильное значение.");
        }
Пример #9
0
        public void TestSpoutLengthGet_CorrectValue()
        {
            var teapotParams = new TeaPotParams(100, 150, 20, 95, TeaPotParams.TheColor.Green, TeaPotParams.TheColor.Blue);
            var expected     = 20;
            var actual       = teapotParams.TeaPotSpoutLength;

            Assert.AreEqual(expected, actual, "Геттер SpoutLength возвращает неправильное значение.");
        }
Пример #10
0
        private void button1_Click(object sender, EventArgs e)
        {
            _teaPotParams = new TeaPotParams(Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text), Convert.ToInt32(textBox3.Text), Convert.ToInt32(textBox4.Text),
                                             (TeaPotParams.TheColor)comboBox1.SelectedItem, (TeaPotParams.TheColor)comboBox2.SelectedItem);
            kompasConnector = new KompasConnector(_teaPotParams);
            Builder builder = new Builder();

            builder.Build(kompasConnector.iPart, kompasConnector._kompas, _teaPotParams);
        }
Пример #11
0
        public void CreateBody(ksPart iPart, KompasObject _kompas, TeaPotParams teaPotParams)
        {
            double   radius = teaPotParams.TeaPotDiameter / 2;
            double   height = teaPotParams.TeaPotHeight;
            ksEntity iSketch;

            ksSketchDefinition iDefinitionSketch;

            CreateSketch(out iSketch, out iDefinitionSketch);

            // Интерфейс для рисования = на скетче;
            ksDocument2D iDocument2D = (ksDocument2D)iDefinitionSketch.BeginEdit();

            iDocument2D.ksCircle(0, 0, radius, 1);

            // Закончить редактировать эскиз
            iDefinitionSketch.EndEdit();
            int X = Convert.ToInt32(teaPotParams.TeaPotBodyColor);

            ExctrusionSketch(iPart, iSketch, height, true, X);
        }
Пример #12
0
        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);
        }
Пример #13
0
 // public KompasConnector(HiveParams hiveParams)
 public KompasConnector(TeaPotParams teaPotParams)
 {
     TakeKompas();
 }