Ejemplo n.º 1
0
        /// <summary>
        /// Create 3D document
        /// </summary>
        /// <returns>true if operation successful; false in case of error</returns>
        public bool CreateDocument3D()
        {
            Document3D = (ksDocument3D)KompasObject.Document3D();

            // Create build
            if (!Document3D.Create(false /*visible*/, false /*build*/))
            {
                LastErrorCode = ErrorCodes.Document3DCreateError;
                return(false);
            }

            // Create screw detail on 3D document
            ScrewPart = (ksPart)Document3D.GetPart((short)Part_Type.pTop_Part);

            // Create nut detail on 3D document
            NutPart = (ksPart)Document3D.GetPart((short)Part_Type.pTop_Part);

            if (ScrewPart == null ||
                NutPart == null
                )
            {
                LastErrorCode = ErrorCodes.Document3DGetPartError;
                return(false);
            }

            return(true);
        }
        /// <summary>
        /// Создание головки
        /// </summary>
        /// <param name="diameterHead">Диаметр головки </param>
        /// <param name="lengthHead">Длина головки </param>
        private void BuildHead(double diameterHead, double lengthHead)
        {
            #region Константы для головки
            const int part          = -1;
            const int sketch        = 5;
            const int planeXOY      = 1;
            const int baseExtrusion = 24;
            const int shaded        = 3;
            const int etBlind       = 0;
            #endregion

            //Эскиз головки
            _part   = _doc3D.GetPart(part);
            _entity = _part.NewEntity(sketch);
            ksSketchDefinition SketchDefinition = _entity.GetDefinition();
            ksEntity           EntityPlane      = _part.GetDefaultEntity(planeXOY);
            SketchDefinition.SetPlane(EntityPlane);
            _entity.Create();
            ksDocument2D Document2D = SketchDefinition.BeginEdit();
            Document2D.ksCircle(0, 0, diameterHead / 2, 1);
            SketchDefinition.EndEdit();

            //Выдавливание головки
            ksEntity EntityExtrusion = _part.NewEntity(baseExtrusion);
            ksBaseExtrusionDefinition BaseExtrusionDefinition = EntityExtrusion.GetDefinition();
            BaseExtrusionDefinition.SetSideParam(true, etBlind, lengthHead, 0, true);
            BaseExtrusionDefinition.SetSketch(_entity);
            EntityExtrusion.Create();
            _doc3D.drawMode        = shaded;
            _doc3D.shadedWireframe = true;
        }