示例#1
0
        /// <summary>
        /// Окрашивание места для хвата в чёрный
        /// </summary>
        /// <param name="iPart">Интерфейс детали</param>
        /// <param name="side">Направление</param>
        private void CreateBlackColor(ksPart iPart, bool side)
        {
            //Получение радиуса ручки
            var X = _modelelParameters.Parameter(ParametersName.HandleRadius).Value;
            //Получение длины гладкой части
            var Y = _modelelParameters.Parameter(ParametersName.ConnectionLength).Value + 5;
            var Z = 0;
            //Получаем массив граней объекта
            ksEntityCollection entityCollectionPart =
                (ksEntityCollection)iPart.EntityCollection((short)Obj3dType.o3d_face);

            //Сортируем грани по заданным координатам
            if (side == true)
            {
                entityCollectionPart.SelectByPoint(X, Y, Z);
            }
            else
            {
                entityCollectionPart.SelectByPoint(X, -Y, Z);
            }
            //Получаем первый элмент массива
            ksEntity element = entityCollectionPart.First();
            //Получаем интерфейс управления цветом детали
            ksColorParam colorParam = element.ColorParam();

            //Назначаем цвет
            colorParam.color = 333333;
            //Применяем изменения
            element.Update();
        }
示例#2
0
        /// <summary>
        /// Построение держателя для блинов
        /// </summary>
        /// <param name="iPart">Интерфейс детали</param>
        /// <param name="side">Направление</param>
        private void CreateHolder(ksPart iPart, bool side)
        {
            //Получаем массив граней объекта
            ksEntityCollection entityCollectionPart =
                (ksEntityCollection)iPart.EntityCollection((short)Obj3dType.o3d_face);
            //Получаем длину гладкой части
            var Y = _modelelParameters.Parameter(ParametersName.ConnectionLength).Value / 2;
            //Получаем длину места хвата
            var Y1 = _modelelParameters.Parameter(ParametersName.GripLength).Value / 2;
            var Y2 = 15;

            //Сортируем грани по координатам
            if (side == false)
            {
                entityCollectionPart.SelectByPoint(0, -(Y + Y1 + Y2), 0);
            }
            if (side == true)
            {
                entityCollectionPart.SelectByPoint(0, (Y + Y1 + Y2), 0);
            }
            //Получаем первый элемент массива
            var planeDetal = entityCollectionPart.First();
            //Создаем новый эскиз
            ksEntity iSketch =
                (ksEntity)iPart.NewEntity((short)Obj3dType.o3d_sketch);
            //Получаем интерфейс свойств эскиза
            ksSketchDefinition iDefinitionSketch = (ksSketchDefinition)iSketch.GetDefinition();

            //Устанавливаем плоскость эскиза
            iDefinitionSketch.SetPlane(planeDetal);
            //Создание эскиза
            iSketch.Create();
            //Создание нового 2Д документа
            ksDocument2D iDocument2D = (ksDocument2D)iDefinitionSketch.BeginEdit();
            //Получение радиуса рукоятки
            var rad = _modelelParameters.Parameter(ParametersName.HolderRadius).Value;

            //Создание кругов
            iDocument2D.ksCircle(0, 0, 3, 1);
            iDocument2D.ksCircle(0, 0, rad, 1);
            //Создание эскиза
            iDefinitionSketch.EndEdit();
            //Получение глубины выдавливания
            var depth = _modelelParameters.Parameter(ParametersName.HolderLength).Value;

            //Выполнение выдавливания
            ExctrusionSketch(iPart, iSketch, depth, true);
        }
示例#3
0
        /// <summary>
        /// Метод создает фаску в 45'
        /// </summary>
        public bool Create(double dist, Point3d coor)
        {
            try
            {
                ksEntityCollection edge = (ksEntityCollection)_app.Part.EntityCollection((short)Obj3dType.o3d_edge);
                if ((edge != null) && (edge.SelectByPoint(coor.X, coor.Y, coor.Z)) && (edge.GetCount() != 0))
                {
                    ksEntity            chamfer = (ksEntity)_app.Part.NewEntity((short)Obj3dType.o3d_chamfer);
                    ksChamferDefinition chDef   = (ksChamferDefinition)chamfer.GetDefinition();

                    if (chDef != null)
                    {
                        chDef.tangent = true;
                        chDef.SetChamferParam(false, dist, dist);
                        ksEntityCollection chamferCollection = (ksEntityCollection)chDef.array();
                        chamferCollection.Clear();
                        chamferCollection.Add(edge.GetByIndex(0));
                        chamfer.Create();
                    }
                }
                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#4
0
        /// <summary>
        /// создание фаски
        /// </summary>
        /// <param name="param"></param>
        public void CreateChamfer(Parameters param)
        {
            double Lenght1 = param.Lenght1;
            double Lenght2 = param.Lenght2;
            double Angle1  = param.Angle1;
            var    doc     = (ksDocument3D)_kompas.ActiveDocument3D();
            ksPart part2   = (ksPart)doc.GetPart((short)Part_Type.pTop_Part); // новый компонент

            if (part2 != null)
            {
                ksEntityCollection collect2 = (ksEntityCollection)part2.EntityCollection((short)Obj3dType.o3d_face);
                if (collect2 != null && collect2.SelectByPoint(0, 0, Lenght1 + 5 + Lenght2) && collect2.GetCount() != 0)
                {
                    ksEntity entityChamfer = (ksEntity)part2.NewEntity((short)Obj3dType.o3d_chamfer);
                    if (entityChamfer != null)
                    {
                        ksChamferDefinition ChamferDef = (ksChamferDefinition)entityChamfer.GetDefinition();
                        if (ChamferDef != null)
                        {
                            ChamferDef.tangent = false;
                            ChamferDef.SetChamferParam(true, Angle1, Angle1);
                            ksEntityCollection arr = (ksEntityCollection)ChamferDef.array();    // динамический массив объектов
                            if (arr != null)
                            {
                                for (int i = 0, count = collect2.GetCount(); i < count; i++)
                                {
                                    arr.Add(collect2.GetByIndex(i));
                                }
                                entityChamfer.Create();
                            }
                        }
                    }
                }
            }
        }
示例#5
0
        /// <summary>
        /// Построение места для хвата
        /// </summary>
        private void CreateGrip(ksPart iPart, bool side)
        {
            //Объявление объекта плоскости
            ksEntity planeDetal = null;
            var      direction  = true;

            //Если длина гладкого места равна 0
            if (_modelelParameters.Parameter(ParametersName.ConnectionLength).Value == 0)
            {
                //Получаем интерфейс базовой плоскости ХОY
                planeDetal =
                    (ksEntity)iPart.GetDefaultEntity((short)Obj3dType.o3d_planeXOZ);
                if (side == true)
                {
                    direction = false;
                }
            }
            else
            {
                //Получаем массив граней объекта
                ksEntityCollection entityCollectionPart =
                    (ksEntityCollection)iPart.EntityCollection((short)Obj3dType.o3d_face);
                //Получаем длину гладкой части
                var Y = _modelelParameters.Parameter(ParametersName.ConnectionLength).Value / 2;
                //Сортируем грани по принадлежности к координатам
                if (side == false)
                {
                    entityCollectionPart.SelectByPoint(0, -Y, 0);
                }
                if (side == true)
                {
                    entityCollectionPart.SelectByPoint(0, Y, 0);
                }
                //Получение первой грани массива
                planeDetal = entityCollectionPart.First();
            }
            //Создаем новый эскиз
            ksEntity iSketch =
                (ksEntity)iPart.NewEntity((short)Obj3dType.o3d_sketch);
            //Получаем интерфейс свойств эскиза
            ksSketchDefinition iDefinitionSketch = (ksSketchDefinition)iSketch.GetDefinition();

            //Устанавливаем плоскость эскиза
            iDefinitionSketch.SetPlane(planeDetal);
            //Создание эскиза
            iSketch.Create();
            //Создание нового 2Д документа
            ksDocument2D iDocument2D = (ksDocument2D)iDefinitionSketch.BeginEdit();
            //Получение радиуса ручки
            var rad = _modelelParameters.Parameter(ParametersName.HandleRadius).Value;

            //Создание круга
            iDocument2D.ksCircle(0, 0, rad, 1);
            //Создание эскиза
            iDefinitionSketch.EndEdit();
            //Получение глубины выдавливания
            var depth = _modelelParameters.Parameter(ParametersName.GripLength).Value / 2;

            //Выполнение выдавливания
            ExctrusionSketch(iPart, iSketch, depth, direction);
        }