Beispiel #1
0
 internal LegacyComponentMassProperty(IXDocument3D doc, IXComponent component, IMassProperty massProperty, IXUnits userUnit)
 {
     Document     = doc;
     Component    = component;
     MassProperty = massProperty;
     UserUnit     = userUnit;
 }
Beispiel #2
0
        /// <summary>
        /// Gets all bodies from the components
        /// </summary>
        /// <param name="comp">Component</param>
        /// <param name="includeHidden">True to include all bodies, false to only include visible</param>
        /// <returns>Bodies</returns>
        public static IEnumerable <IXBody> IterateBodies(this IXComponent comp, bool includeHidden = false)
        {
            IEnumerable <IXComponent> SelectComponents(IXComponent parent)
            {
                var state = parent.State;

                if (!state.HasFlag(ComponentState_e.Suppressed))
                {
                    if (includeHidden || !state.HasFlag(ComponentState_e.Hidden))
                    {
                        yield return(parent);

                        if (state.HasFlag(ComponentState_e.Lightweight))
                        {
                            if (parent.Document is IXAssembly)
                            {
                                comp.State = (ComponentState_e)(state - ComponentState_e.Lightweight);
                            }
                        }

                        foreach (var child in parent.Children.SelectMany(c => SelectComponents(c)))
                        {
                            yield return(child);
                        }
                    }
                }
            }

            IXBody[] GetComponentBodies(IXComponent srcComp)
            => srcComp.Bodies.Where(b => includeHidden || b.Visible).ToArray();

            if (comp.Document is IXPart)
            {
                foreach (var body in GetComponentBodies(comp))
                {
                    yield return(body);
                }
            }
            else if (comp.Document is IXAssembly)
            {
                foreach (var body in SelectComponents(comp)
                         .SelectMany(GetComponentBodies))
                {
                    yield return(body);
                }
            }
            else
            {
                throw new NotSupportedException();
            }
        }
Beispiel #3
0
        public bool TryGet(string name, out IXComponent ent)
        {
            var comp = m_Assm.Assembly.GetComponentByName(name);

            if (comp != null)
            {
                ent = SwObject.FromDispatch <SwComponent>(comp, m_Assm);
                return(true);
            }
            else
            {
                ent = null;
                return(false);
            }
        }
Beispiel #4
0
        public bool TryGet(string name, out IXComponent ent)
        {
            var comp = GetChildren().FirstOrDefault(c => string.Equals(GetRelativeName(c), name, StringComparison.CurrentCultureIgnoreCase));

            if (comp != null)
            {
                ent = SwObject.FromDispatch <SwComponent>(comp, m_Assm);
                return(true);
            }
            else
            {
                ent = null;
                return(false);
            }
        }
Beispiel #5
0
        public bool TryGet(string name, out IXComponent ent)
        {
            var comp = IterateDmComponents().FirstOrDefault(c => string.Equals(((ISwDMComponent7)c).Name2,
                                                                               name, StringComparison.CurrentCultureIgnoreCase));

            if (comp != null)
            {
                ent = CreateComponentInstance(comp);
                return(true);
            }
            else
            {
                ent = null;
                return(false);
            }
        }
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="comp">Component</param>
 public NotLoadedMassPropertyComponentException(IXComponent comp)
     : base($"Reference document of the component '{comp.Name}' must be loaded in order to access this mass property in SOLIDWORKS 2019 or older")
 {
 }
Beispiel #7
0
 /// <summary>
 /// Gets all bodies from the components
 /// </summary>
 /// <param name="comp">Component</param>
 /// <param name="includeHidden">True to include all bodies, false to only include visible</param>
 /// <returns>Bodies</returns>
 public static IEnumerable <IXBody> IterateBodies(this IXComponent comp, bool includeHidden = false)
 => IterateComponentBodies(new IXComponent[] { comp }, includeHidden);
Beispiel #8
0
 public bool TryGet(string name, out IXComponent ent)
 => throw new Exception("No components");