IDrawingComponent Interface 学习

Solidworks学习笔记-链接Solidworks

在此基础上学习

属性

Name Description 备注
Component Gets the referenced component for this drawing component.   获取此绘图组件的引用组件。
Layer Gets or sets the name of the layer on which the component resides in the view.   获取或设置组件在视图中所在的层的名称。
LayerOverride Gets or sets whether the drawing component has properties that override the default properties of the layer.   获取或设置绘图组件是否具有覆盖图层默认属性的属性。
Name Gets the name of the drawing component.   获取绘图组件的名称。
Style Gets or sets the style for the line for this component in this drawing view.   获取或设置此绘图视图中此组件的线条样式。
UseDocumentDefaults Gets or sets whether to use the document default settings for the component's line fonts.   获取或设置是否对组件的线条字体使用文档默认设置。
View Gets the drawing view on which this component resides.   获取此组件所在的绘图视图。
Visible Gets or sets the visibility state for this component for this drawing view.   获取或设置此工程视图的此组件的可见性状态。
Width Gets or sets the width of the line for this component for this drawing view.  

获取或设置此绘图视图的此组件的线宽。

Component2 Component {get;}

//This example shows how to get the components in a drawing view and how to change their //line font styles.

//------------------------------------------------------------------
// Preconditions:
// 1. Drawing document opened by the macro exists.
// 2. Drawing view is selected.
// 3. Open the Immediate window.
//
// Postconditions:
// 1. Specified drawing document is opened.
// 2. Drawing View1 is selected.
// 3. Gets the root and children components for Drawing
//    View1.
// 4. For each component:
//    a. Prints whether a drawing component is selected,
//       the name of the component, and the name of the 
//       configuration to the Immediate window.
//    b. Disables the use of the document defaults for the
//       the component's line font style.
//    c. Sets new line style and line thickness for the component's
//       visible edges and prints the new settings and values to
//       the Immediate window.
//    d. Prints the file name of the component to the Immediate window.
//------------------------------------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System;
using System.Diagnostics;

namespace LineFontsDrawingComponentCSharp.csproj
{
    partial class SolidWorksMacro
    {
        public void Main()
        {
            ModelDoc2 swModel = default(ModelDoc2);
            DrawingDoc swDraw = default(DrawingDoc);
            SelectionMgr swSelMgr = default(SelectionMgr);
            SelectData swSelData = default(SelectData);
            ModelDocExtension swModelDocExt = default(ModelDocExtension);
            View swView = default(View);
            DrawingComponent swRootDrawComp = default(DrawingComponent);
            object[] vDrawChildCompArr = null;
            DrawingComponent swDrawComp = default(DrawingComponent);
            Component2 swComp = default(Component2);
            ModelDoc2 swCompModel = default(ModelDoc2);
            string assemblyDrawing = null;
            bool status = false;
            int errors = 0;
            int warnings = 0;
            int lineWeight = 0;
            double lineThickness = 0;

            assemblyDrawing = "C:\\Users\\Public\\Documents\\SOLIDWORKS\\SOLIDWORKS 2018\\samples\\tutorial\\driveworksxpress\\mobile gantry.slddrw";
            swModel = (ModelDoc2)swApp.OpenDoc6(assemblyDrawing, (int)swDocumentTypes_e.swDocDRAWING, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref errors, ref warnings);

            swDraw = (DrawingDoc)swModel;
            swModelDocExt = (ModelDocExtension)swModel.Extension;
            swSelMgr = (SelectionMgr)swModel.SelectionManager;
            swSelData = (SelectData)swSelMgr.CreateSelectData();

            status = swDraw.ActivateView("Drawing View4");
            status = swModelDocExt.SelectByID2("Drawing View1", "DRAWINGVIEW", 0.104008832128, 0.1163870710783, 0, false, 0, null, 0);
            swView = (View)swSelMgr.GetSelectedObject6(1, -1);
            swModel.ViewZoomtofit2();
            swRootDrawComp = (DrawingComponent)swView.RootDrawingComponent;

            Debug.Print("File = " + swModel.GetPathName());
            Debug.Print("  View = " + swView.Name);

            vDrawChildCompArr = (object[])swRootDrawComp.GetChildren();
            foreach (object vDrawChildComp in vDrawChildCompArr)
            {
                swDrawComp = (DrawingComponent)vDrawChildComp;

                // Drawing component selected?
                Debug.Print(" Drawing component selected = " + swDrawComp.Select(true, null));

                // Returns NULL if underlying model is open in a different configuration
                swComp = (Component2)swDrawComp.Component;

                if ((null != swComp))
                {
                    // Returns NULL if drawing is lightweight
                    swCompModel = (ModelDoc2)swComp.GetModelDoc2();

                    Debug.Print("      Component                            = " + swComp.Name2);
                    Debug.Print("      Configuration                        = " + swComp.ReferencedConfiguration);

                    // Turn off using document default settings for component's line font style
                    swDrawComp.UseDocumentDefaults = false;
                    Debug.Print("      Default component line font in use   = " + swDrawComp.UseDocumentDefaults);
                    // Set new line style for visible edges
                    swDrawComp.SetLineStyle((int)swDrawingComponentLineFontOption_e.swDrawingComponentLineFontVisible, (int)swLineStyles_e.swLineCHAIN);
                    Debug.Print("        Line style for visible edges                      = " + swDrawComp.GetLineStyle((int)swDrawingComponentLineFontOption_e.swDrawingComponentLineFontVisible));
                    // Set new line thickness for visible edges
                    swDrawComp.SetLineThickness((int)swDrawingComponentLineFontOption_e.swDrawingComponentLineFontVisible, (int)swLineWeights_e.swLW_CUSTOM, 0.0003);
                    lineWeight = swDrawComp.GetLineThickness((int)swDrawingComponentLineFontOption_e.swDrawingComponentLineFontVisible, out lineThickness);
                    Debug.Print("        Line weight style and thickness for visible edges = " + lineWeight + ", " + lineThickness * 1000 + " mm");

                    if ((null != swCompModel))
                    {
                        Debug.Print("      File                                 = " + swCompModel.GetPathName());
                        Debug.Print(" ");
                    }

                }

            }

        }


        /// <summary>
        /// The SldWorks swApp variable is pre-assigned for you.
        /// </summary>

        public SldWorks swApp;

    }
}
//This example shows how to select an assembly component in a drawing.

//--------------------------------------------
// Preconditions:
// 1. Open a drawing of an assembly.
// 2. Select an assembly component in the drawing.
//
// Postconditions: Displays a message box
// containing the name of the selected assembly
// component.
//---------------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System.Runtime.InteropServices;
using System;
using System.Windows.Forms;
 
namespace GetSelectedDrawingComponent4CSharp.csproj
{
    public partial class SolidWorksMacro
    {
        public void Main()
        {
            ModelDoc2 swModelDoc;
            SelectionMgr swSelMgr;
            Component2 swComponent;
            DrawingComponent swDrawingComponent;
 
            swModelDoc = (ModelDoc2)swApp.ActiveDoc;
            if (swModelDoc == null)
            {
                return;
            }
            swSelMgr = (SelectionMgr)swModelDoc.SelectionManager;
 
            if (swSelMgr.GetSelectedObjectCount2(0) == 0)
            {
                MessageBox.Show("No selections detected.");
                return;
            }
 
            if (swSelMgr.GetSelectedObjectType3(1, 0) == (int)swSelectType_e.swSelCOMPONENTS)
            {
                swDrawingComponent = (DrawingComponent)swSelMgr.GetSelectedObjectsComponent4(1, 0);
 
                if (swDrawingComponent == null)
                {
                    MessageBox.Show("The component is empty.");
                    return;
                }
                else
                {
                    swComponent = (Component2)swDrawingComponent.Component;
                    MessageBox.Show(swComponent.Name2);
                }
            }
            else
            {
                MessageBox.Show("The selection is not an assembly component.");
                return;
            }
 
        }
 
 
        /// <summary>
        /// The SldWorks swApp variable is pre-assigned for you.
        /// </summary>
 
        public SldWorks swApp;
 
    }
}

方法

Name Description 备注
DeSelect Deselects this drawing component.   取消选择此绘图组件。
GetChildren Gets the child components for this drawing component.   获取此绘图组件的子组件。
GetChildrenCount Gets the number of child components for this drawing component.   获取此绘图组件的子组件数。
GetLineStyle Gets the line style for the drawing component.   获取绘图组件的线条样式。
GetLineThickness Gets the line thickness for the drawing component.   获取绘图组件的线条粗细。
IGetChildren Gets the child components for this drawing component.   获取此绘图组件的子组件。
IsRoot Gets whether this is the root drawing component.   获取这是否是根绘图组件。
Select Selects the specified drawing component.   选择指定的绘图组件。
SetLineStyle Sets the line style for the drawing component.   设置绘图组件的线型。
SetLineThickness Sets the line thickness for the drawing component.   设置绘图组件的线条粗细。

上一篇:Java中接口,学Java必看书籍


下一篇:delphi 向 TEdgeBrowser 组件中写入 Cookie 的方法