Example #1
0
        /// <summary>
        /// Lets you resize selected objects in a uniform manner, making them larger or smaller equally in all directions. You can also lock the scaling factor in any of the directions.
        /// </summary>
        /// <param name="entityToScale">The entity to scale.</param>
        /// <param name="scaleFactor">The scale value.</param>
        /// <param name="lockX">Locked in x if true.</param>
        /// <param name="lockY">Locked in y if true.</param>
        /// <param name="lockZ">Locked in z if true.</param>
        /// <param name="scaleOrigin">Objects are scaled relative to the scale origin.</param>
        /// <remarks></remarks>
        public static void ScaleUniform(
            IPSScalable entityToScale,
            double scaleFactor,
            bool lockX,
            bool lockY,
            bool lockZ,
            Geometry.Point scaleOrigin = null)
        {
            _powerSHAPE = ((PSEntity)entityToScale).PowerSHAPE;

            ((PSEntity)entityToScale).AddToSelection(true);

            _powerSHAPE.DoCommand("EDIT SCALE");

            _powerSHAPE.DoCommand("UNIFORM");

            _powerSHAPE.DoCommand("VALUE " + scaleFactor);

            if (lockX)
            {
                _powerSHAPE.DoCommand("LOCK X ON");
            }
            else
            {
                _powerSHAPE.DoCommand("LOCK X OFF");
            }
            if (lockY)
            {
                _powerSHAPE.DoCommand("LOCK Y ON");
            }
            else
            {
                _powerSHAPE.DoCommand("LOCK Y OFF");
            }
            if (lockZ)
            {
                _powerSHAPE.DoCommand("LOCK Z ON");
            }
            else
            {
                _powerSHAPE.DoCommand("LOCK Z OFF");
            }

            if (scaleOrigin != null)
            {
                _powerSHAPE.DoCommand("SCALEORIGIN");
                _powerSHAPE.DoCommand(scaleOrigin.ToString());
            }

            if (_powerSHAPE.Version.Major > 11)
            {
                _powerSHAPE.DoCommand("APPLY");
                _powerSHAPE.DoCommand("DISMISS");
            }
            else
            {
                _powerSHAPE.DoCommand("CANCEL");
            }
        }
Example #2
0
        /// <summary>
        /// Resizes surfaces and solids according to their volume as projected on to the active workplane.
        /// </summary>
        /// <param name="entityToScale">The entity to scale.</param>
        /// <param name="newVolume">The new projected volume.</param>
        /// <param name="lockX">Locked in x if true.</param>
        /// <param name="lockY">Locked in y if true.</param>
        /// <param name="lockZ">Locked in z if true.</param>
        /// <param name="scaleOrigin">Objects are scaled relative to the scale origin.</param>
        /// <remarks></remarks>
        public static void ScaleProjectedVolume(
            IPSScalable entityToScale,
            double newVolume,
            bool lockX,
            bool lockY,
            bool lockZ,
            Geometry.Point scaleOrigin = null)
        {
            _powerSHAPE = ((PSEntity)entityToScale).PowerSHAPE;

            ((PSEntity)entityToScale).AddToSelection(true);

            _powerSHAPE.DoCommand("EDIT SCALE");

            _powerSHAPE.DoCommand("UNIFORM");

            _powerSHAPE.DoCommand("VALUE " + newVolume);

            if (lockX)
            {
                _powerSHAPE.DoCommand("LOCK X ON");
            }
            else
            {
                _powerSHAPE.DoCommand("LOCK X OFF");
            }
            if (lockY)
            {
                _powerSHAPE.DoCommand("LOCK Y ON");
            }
            else
            {
                _powerSHAPE.DoCommand("LOCK Y OFF");
            }
            if (lockZ)
            {
                _powerSHAPE.DoCommand("LOCK Z ON");
            }
            else
            {
                _powerSHAPE.DoCommand("LOCK Z OFF");
            }

            if (scaleOrigin != null)
            {
                _powerSHAPE.DoCommand("SCALEORIGIN");
                _powerSHAPE.DoCommand(scaleOrigin.ToString());
            }

            _powerSHAPE.DoCommand("APPLY");
            _powerSHAPE.DoCommand("DISMISS");
        }