Пример #1
0
        /// <summary>
        /// Параметр вращения по граням вращения (начало и конец),
        /// точке расположения вращения, размеру диаметра и шагу вращения
        /// </summary>
        /// <param name="parameters">Parameters of spin</param>
        public Spin(SpinParameters parameters)
        {
            if (parameters.BeginSpinFace == null ||
                parameters.EndSpinFace == null ||
                parameters.SpinLocationPoint.LastErrorCode != ErrorCodes.OK ||
                parameters.DiameterSize == default(double) ||
                !DoubleValidator.Validate(parameters.DiameterSize) ||
                parameters.SpinStep == default(double) ||
                !DoubleValidator.Validate(parameters.SpinStep)
                )
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return;
            }

            if (parameters.DiameterSize <= default(double) ||
                !DoubleValidator.Validate(parameters.DiameterSize) ||
                !DoubleValidator.Validate(parameters.SpinLocationPoint.X) ||
                !DoubleValidator.Validate(parameters.SpinLocationPoint.Y)
                )
            {
                LastErrorCode = ErrorCodes.DoubleValueValidationError;
                return;
            }

            if (!CreateSpin(parameters))
            {
                return;
            }
        }
Пример #2
0
        /// <summary>
        /// Создание определения вращения по начальной и конечной сущности, диаметру и высоте вращения
        /// </summary>
        /// <param name="parameters">Spin parameters</param>
        private bool CreateSpin(SpinParameters parameters)
        {
            // Создать сущность вращения
            var spin = (ksEntity)parameters.Document3DPart.NewEntity((short)Obj3dType.o3d_cylindricSpiral);

            if (spin == null)
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return(false);
            }

            // Создание определения вращения по объекту вращения
            var spinDefinition = (ksCylindricSpiralDefinition)spin.GetDefinition();

            if (spinDefinition == null)
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return(false);
            }

            // Установить базовую плоскость вращения
            spinDefinition.SetPlane(parameters.BeginSpinFace);

            spinDefinition.buildDir   = true;               // Обычный каталог сборки вращения
            spinDefinition.buildMode  = 1;                  // Построить по шагу и высоте
            spinDefinition.diamType   = 0;                  // Диаметр по размеру
            spinDefinition.diam       = parameters.DiameterSize;
            spinDefinition.heightType = 1;                  // Высота по объекту
            spinDefinition.SetHeightObject(parameters.EndSpinFace);
            spinDefinition.turnDir = true;                  // Направление по часовой стрелке
            spinDefinition.step    = parameters.SpinStep;   // шаг спирали

            // Создать эскиз на документе
            if (!spinDefinition.SetLocation(parameters.SpinLocationPoint.X, parameters.SpinLocationPoint.Y) ||
                !spin.Create()
                )
            {
                LastErrorCode = ErrorCodes.EntityCreateError;
                return(false);
            }

            Entity   = spin;
            SpinStep = spinDefinition.step;

            return(true);
        }
Пример #3
0
        /// <summary>
        /// Создание определения вращения по начальной
        /// и конечной сущности, диаметру и высоте вращения
        /// </summary>
        /// <param name="parameters">Spin parameters</param>
        private bool CreateSpin(SpinParameters parameters)
        {
            var spin = (ksEntity)parameters.Document3DPart.NewEntity(
                (short)Obj3dType.o3d_cylindricSpiral);

            if (spin == null)
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return(false);
            }

            var spinDefinition = (ksCylindricSpiralDefinition)spin.GetDefinition();

            if (spinDefinition == null)
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return(false);
            }

            spinDefinition.SetPlane(parameters.BeginSpinFace);

            spinDefinition.buildDir   = true;
            spinDefinition.buildMode  = 1;
            spinDefinition.diamType   = 0;
            spinDefinition.diam       = parameters.DiameterSize;
            spinDefinition.heightType = 1;
            spinDefinition.SetHeightObject(parameters.EndSpinFace);
            spinDefinition.turnDir = true;
            spinDefinition.step    = parameters.SpinStep;

            if (!spinDefinition.SetLocation(parameters.SpinLocationPoint.X,
                                            parameters.SpinLocationPoint.Y) ||
                !spin.Create()
                )
            {
                LastErrorCode = ErrorCodes.EntityCreateError;
                return(false);
            }

            Entity   = spin;
            SpinStep = spinDefinition.step;

            return(true);
        }