{"id":641,"date":"2019-10-08T16:18:00","date_gmt":"2019-10-08T08:18:00","guid":{"rendered":"http:\/\/localhost:8080\/?p=641"},"modified":"2019-10-08T16:18:00","modified_gmt":"2019-10-08T08:18:00","slug":"c-solidworks-%e4%ba%8c%e6%ac%a1%e5%bc%80%e5%8f%91-api-%e9%ab%98%e7%ba%a7%e9%80%89%e6%8b%a9%e5%99%a8","status":"publish","type":"post","link":"https:\/\/blog.ke-zhi.com\/?p=641","title":{"rendered":"C# SolidWorks \u4e8c\u6b21\u5f00\u53d1 API &#8212; \u9ad8\u7ea7\u9009\u62e9\u5668"},"content":{"rendered":"<h1> <a href=\"https:\/\/www.cnblogs.com\/solidworksapi\/p\/12897470.html\" target=\"_blank\" rel=\"nofollow noopener\"> <span>C# SolidWorks \u4e8c\u6b21\u5f00\u53d1 API &#8212; \u9ad8\u7ea7\u9009\u62e9\u5668<\/span> <\/a> <\/h1>\n<p>Solidworks\u5728\u88c5\u914d\u4f53\u4e2d\u63d0\u4f9b\u4e86\u4e00\u9879\u9ad8\u7ea7\u9009\u62e9\u7684\u529f\u80fd.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/img-blog.csdnimg.cn\/20191008161336187.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3plbmdxaDAzMTQ=,size_16,color_FFFFFF,t_70\"><\/p>\n<p>\u8fd9\u4e2a\u529f\u80fd\u53ef\u4ee5\u5f88\u5feb\u7684\u9009\u62e9\u6211\u4eec\u60f3\u8981\u9009\u62e9\u7684\u4e00\u4e9b\u96f6\u4ef6.\u5c24\u5176\u662f\u6bd4\u8f83\u5927\u7684\u88c5\u914d\u4f53,\u6548\u7387\u6bd4\u904d\u5386\u88c5\u914d\u4f53\u4e4b\u540e \u518d\u901a\u8fc7\u7a0b\u5e8f\u8fc7\u6ee4\u6765\u9009\u62e9\u60f3\u8981\u7684\u96f6\u4ef6\u5feb.<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/img-blog.csdnimg.cn\/20191008161228726.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3plbmdxaDAzMTQ=,size_16,color_FFFFFF,t_70\"><\/p>\n<p>\u4e0a\u4ee3\u7801:<\/p>\n<pre><code>  #region \u9ad8\u7ea7\u9009\u62e9\n\n        private void btn_Adv_Select_Click(object sender, EventArgs e)\n        {\n            \/\/\u8bf7\u5148\u6253\u5f00C:\\Users\\Public\\Documents\\SOLIDWORKS\\SOLIDWORKS 2018\\samples\\tutorial\\api\\landing_gear.sldasm\n\n            \/\/\u53c2\u8003\u8d44\u6599\u4e3aAPI \u5e2e\u52a9\u4e2d\u7684 Use Advanced Component Selection Example (C#)\n\n            ISldWorks swApp = Utility.ConnectToSolidWorks();\n            ModelDoc2 swModel = default(ModelDoc2);\n\n            swModel = swApp.ActiveDoc;\n\n            int DocType = 0;\n            DocType = swModel.GetType();\n\n            if (DocType != (int)swDocumentTypes_e.swDocASSEMBLY)\n            {\n                swApp.SendMsgToUser(\"\u5f53\u524d\u4e0d\u662f\u88c5\u914d\u4f53!\");\n                return;\n            }\n\n            AdvancedSelectionCriteria advancedSelectionCriteria = default(AdvancedSelectionCriteria);\n\n            AssemblyDoc assemblyDoc = (AssemblyDoc)swModel;\n\n            advancedSelectionCriteria = assemblyDoc.GetAdvancedSelection();\n\n            int count = advancedSelectionCriteria.GetItemCount();\n\n            \/\/\u6e05\u7a7a\u9009\u62e9\u6761\u4ef6\n            for (int i = 0; i &lt; advancedSelectionCriteria.GetItemCount(); i++)\n            {\n                advancedSelectionCriteria.DeleteItem(i);\n            }\n\n            \/\/\u589e\u52a0\u9009\u62e9\u6761\u4ef6 : \u6587\u4ef6\u540d\u5305\u542blnk\n            advancedSelectionCriteria.AddItem(\"Document name -- SW Special\", 16, \"lnk\", false);\n            \/\/\u589e\u52a0\u9009\u62e9\u6761\u4ef6(\u6216\u8005) : \u6587\u4ef6\u540d\u5305\u542bhub\n            advancedSelectionCriteria.AddItem(\"Document name -- SW Special\", 16, \"hub\", false);\n\n            \/\/\u89e3\u91ca\u5f53\u524d\u7684\u9009\u62e9\u6761\u4ef6\n            ReportAllValues(advancedSelectionCriteria);\n\n            \/\/\u9009\u62e9\n            var SelectSuccess = advancedSelectionCriteria.Select();\n\n            if (SelectSuccess == true)\/\/\u9009\u62e9\u6210\u529f\n            {\n                SelectionMgr selectionMgr = swModel.SelectionManager;\n                Component2 swComp;\n                \/\/\u904d\u5386\u5df2\u7ecf\u9009\u62e9\u7684\u96f6\u4ef6\n                for (int j = 0; j &lt; selectionMgr.GetSelectedObjectCount(); j++)\n                {\n                    swComp = selectionMgr.GetSelectedObject6(j + 1, 0);\n\n                    swModel = swComp.GetModelDoc2();\n\n                    \/\/\u663e\u793a\u6587\u4ef6\u540d\n                    Debug.Print(swModel.GetPathName());\n                }\n            }\n        }\n\n        public string GetStringFromEnum(int EnumVal)\n        {\n            string functionReturnValue = null;\n            \/\/From enum swAdvSelecType_e\n            if (EnumVal == 1)\n            {\n                functionReturnValue = \"And\";\n            }\n            else if (EnumVal == 2)\n            {\n                functionReturnValue = \"Or\";\n            }\n            else if (EnumVal == 16384)\n            {\n                functionReturnValue = \"is yes\";\n            }\n            else if (EnumVal == 32768)\n            {\n                functionReturnValue = \"is no\";\n            }\n            else if (EnumVal == 8)\n            {\n                functionReturnValue = \"is not\";\n            }\n            else if (EnumVal == 16)\n            {\n                functionReturnValue = \"contains\";\n            }\n            else if (EnumVal == 32)\n            {\n                functionReturnValue = \"Is_Contained_By\";\n            }\n            else if (EnumVal == 64)\n            {\n                functionReturnValue = \"Interferes_With\";\n            }\n            else if (EnumVal == 128)\n            {\n                functionReturnValue = \"Does_Not_Interferes_With\";\n            }\n            else if (EnumVal == 4)\n            {\n                functionReturnValue = \"is (exactly)\";\n            }\n            else if (EnumVal == 8192)\n            {\n                functionReturnValue = \"not =\";\n            }\n            else if (EnumVal == 512)\n            {\n                functionReturnValue = \"&lt;\";\n            }\n            else if (EnumVal == 2048)\n            {\n                functionReturnValue = \"&lt;=\";\n            }\n            else if (EnumVal == 4096)\n            {\n                functionReturnValue = \"=\";\n            }\n            else if (EnumVal == 1024)\n            {\n                functionReturnValue = \"&gt;=\";\n            }\n            else if (EnumVal == 256)\n            {\n                functionReturnValue = \"&gt;\";\n            }\n            else\n            {\n                functionReturnValue = \"Condition NOT found\";\n            }\n            return functionReturnValue;\n        }\n\n        public void ReportAllValues(AdvancedSelectionCriteria AdvancedSelectionCriteria)\n        {\n            Debug.Print(\"\");\n\n            int Count = 0;\n            Count = AdvancedSelectionCriteria.GetItemCount();\n            Debug.Print(\"GetItemCount returned \" + Count);\n\n            int i = 0;\n            string aProperty = \"\";\n            int Condition = 0;\n            string Value = \"\";\n            bool IsAnd = false;\n            int Rindex = 0;\n            string ConditionString = null;\n            string PrintString = null;\n\n            string IndexFmt = null;\n            string RindexFmt = null;\n            string AndOrFmt = null;\n            string PropertyFmt = null;\n            string ConditionFmt = null;\n            string ValueFmt = null;\n            IndexFmt = \"!@@@@@@@@\";\n            RindexFmt = \"!@@@@@@@@@\";\n            AndOrFmt = \"!@@@@@@@@@\";\n            PropertyFmt = \"!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\";\n            ConditionFmt = \"!@@@@@@@@@@@@@@@\";\n            ValueFmt = \"#.00\";\n\n            \/\/Debug.Print\n            PrintString = string.Format(\"Index\", IndexFmt) + \"     \" + string.Format(\"Rindex\", RindexFmt) + \"  \" + string.Format(\"And\/Or\", AndOrFmt) + \"  \" + string.Format(\"Property\", PropertyFmt) + \"                     \" + string.Format(\"Condition\", ConditionFmt) + \"     \" + string.Format(\"Value\", ValueFmt);\n            Debug.Print(PrintString);\n            for (i = 0; i &lt;= Count - 1; i++)\n            {\n                Rindex = AdvancedSelectionCriteria.GetItem(i, out aProperty, out Condition, out Value, out IsAnd);\n                ConditionString = GetStringFromEnum(Condition);\n                PrintString = string.Format(i.ToString(), IndexFmt) + \"         \" + string.Format(Rindex.ToString(), RindexFmt) + \"       \" + string.Format((IsAnd == false ? \"OR\" : \"AND\"), AndOrFmt) + \"      \" + string.Format(aProperty, PropertyFmt) + \"  \" + string.Format(ConditionString, ConditionFmt) + \"  \" + string.Format(Value, ValueFmt);\n                Debug.Print(PrintString);\n            }\n            Debug.Print(\"\");\n        }\n\n        #endregion \u9ad8\u7ea7\u9009\u62e9<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>          posted @<br \/>\n<span>2019-10-08 16:18<\/span>&nbsp;<br \/>\n<a href=\"https:\/\/www.cnblogs.com\/solidworksapi\/\" target=\"_blank\" rel=\"nofollow noopener\">painezeng<\/a>&nbsp; \u9605\u8bfb(<br \/>\n<span>141<\/span>)&nbsp; \u8bc4\u8bba(<br \/>\n<span>0<\/span>)&nbsp;<br \/>\n<a href=\"https:\/\/i.cnblogs.com\/EditPosts.aspx?postid=12897470\" rel=\"nofollow noopener\" target=\"_blank\">\u7f16\u8f91<\/a>&nbsp;<br \/>\n<a href=\"\" target=\"_blank\" rel=\"nofollow noopener\">\u6536\u85cf<\/a>&nbsp;<br \/>\n<a href=\"\" target=\"_blank\" rel=\"nofollow noopener\">\u4e3e\u62a5<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>C# SolidWorks \u4e8c\u6b21\u5f00\u53d1 API &#8212; \u9ad8\u7ea7\u9009\u62e9\u5668 Solidworks\u5728\u88c5\u914d\u4f53\u4e2d\u63d0\u4f9b\u4e86 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":642,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4,5],"tags":[7,6,8],"series":[],"class_list":["post-641","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-solidworks-","category-solidworks","tag-api","tag-solidworks","tag-8"],"views":221,"_links":{"self":[{"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/posts\/641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=641"}],"version-history":[{"count":0,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/posts\/641\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/media\/642"}],"wp:attachment":[{"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=641"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}