{"id":608,"date":"2019-11-22T09:15:00","date_gmt":"2019-11-22T01:15:00","guid":{"rendered":"http:\/\/localhost:8080\/?p=608"},"modified":"2019-11-22T09:15:00","modified_gmt":"2019-11-22T01:15:00","slug":"c-solidworks-%e4%ba%8c%e6%ac%a1%e5%bc%80%e5%8f%91-api-%e5%ae%9e%e4%be%8b%ef%bc%9a%e6%89%93%e5%8c%85%e6%96%87%e4%bb%b6","status":"publish","type":"post","link":"https:\/\/blog.ke-zhi.com\/?p=608","title":{"rendered":"C# SolidWorks \u4e8c\u6b21\u5f00\u53d1 API &#8212; \u5b9e\u4f8b\uff1a\u6253\u5305\u6587\u4ef6"},"content":{"rendered":"<h1> <a href=\"https:\/\/www.cnblogs.com\/solidworksapi\/p\/12897450.html\" target=\"_blank\" rel=\"nofollow noopener\"> <span>C# SolidWorks \u4e8c\u6b21\u5f00\u53d1 API &#8212; \u5b9e\u4f8b\uff1a\u6253\u5305\u6587\u4ef6<\/span> <\/a> <\/h1>\n<p>\u6211\u4eec\u5f00\u53d1\u7684\u7a0b\u5e8f\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u7ecf\u5e38\u8981\u4f7f\u7528\u4e00\u4e9b\u505a\u597d\u7684\u6a21\u677f\uff0c\u5c24\u5176\u662f\u53c2\u6570\u5316\u7684\u65f6\u5019\uff0c\u8fd9\u6837\u5c31\u96be\u514d\u6709\u4e00\u4e9b\u6587\u4ef6\u9700\u8981\u4ece\u6307\u5b9a\u7684\u5730\u65b9\u590d\u5236\u8fc7\u6765\uff0c\u6216\u8005\u8bf4\u8fd8\u8981\u628a\u6587\u4ef6\u540d\u66ff\u6362\u6389\uff0c\u8fd8\u53ef\u4ee5\u52a0\u4e00\u4e9b\u524d\u7f00\u6216\u8005\u540e\u7f00\u3002\u8fd9\u4e2a\u4f8b\u5b50\u4e5f\u53ea\u662f\u4e00\u4e2a\u6700\u7b80\u5355\u7684\u6253\u5305\u65b9\u6848\uff0c\u5f53\u7136\u5927\u5bb6\u8fd8\u53ef\u4ee5\u53c2\u8003API\u5e2e\u52a9\u6587\u4ef6\u4e2d\u7684Pack And Go\u51fd\u6570\u6765\u6253\u5305\u6587\u4ef6\u3002<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/img-blog.csdnimg.cn\/20191122091118974.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3plbmdxaDAzMTQ=,size_16,color_FFFFFF,t_70\"><\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/img-blog.csdnimg.cn\/20191122091207742.png\"><\/p>\n<pre><code>        \/\/\/ &lt;summary&gt;\n        \/\/\/ \u4e0d\u6253\u5f00\u6587\u4ef6,\u590d\u5236\u6587\u4ef6\n        \/\/\/ &lt;\/summary&gt;\n        \/\/\/ &lt;param name=\"sourcefile\"&gt;\u6e90\u6587\u4ef6\u8def\u5f84&lt;\/param&gt;\n        \/\/\/ &lt;param name=\"target\"&gt;\u76ee\u6807\u6587\u4ef6&lt;\/param&gt;\n        \/\/\/ &lt;param name=\"ReplaceFrom\"&gt;\u9700\u8981\u66ff\u6362\u7684\u6587\u4ef6&lt;\/param&gt;\n        \/\/\/ &lt;param name=\"ReplaceTo\"&gt;\u66ff\u6362\u6210\u4ec0\u4e48&lt;\/param&gt;\n        \/\/\/ &lt;param name=\"likeFile\"&gt;\u662f\u5426\u6a21\u7cca\u5339\u914d&lt;\/param&gt;\n        \/\/\/ &lt;param name=\"ReplaceFrom2\"&gt;\u66ff\u6362\u5b57\u7b262&lt;\/param&gt;\n        \/\/\/ &lt;param name=\"ReplaceTo2\"&gt;\u7b2c\u4e8c\u6b21\u66ff\u6362\u6210\u4ec0\u4e48&lt;\/param&gt;\n        \/\/\/ &lt;param name=\"likeFile2\"&gt;\u6a21\u7cca\u5339\u914d?&lt;\/param&gt;\n        public void CopySolidworksFile(string sourcefile, string target, string ReplaceFrom = \"\", string ReplaceTo = \"\", bool likeFile = true, string ReplaceFrom2 = \"\", string ReplaceTo2 = \"\", bool likeFile2 = false)\n        {\n            ISldWorks swApp = Utility.ConnectToSolidWorks();\n\n            target = System.IO.Path.GetDirectoryName(target) + @\"\\\";\n\n            int sourcecount = 0;\n\n            string[] sourcefiles = null;\n\n            string[] targetfiles = null;\n\n            object[] depends;\n\n            var sourcefileName = System.IO.Path.GetFileName(sourcefile);\n            var oldSourcefiles = sourcefiles;\n            sourcefiles = new string[sourcecount + 1];\n            if (oldSourcefiles != null)\n                Array.Copy(oldSourcefiles, sourcefiles, Math.Min(sourcecount + 1, oldSourcefiles.Length));\n            var oldTargetfiles = targetfiles;\n            targetfiles = new string[sourcecount + 1];\n            if (oldTargetfiles != null)\n                Array.Copy(oldTargetfiles, targetfiles, Math.Min(sourcecount + 1, oldTargetfiles.Length));\n            sourcefiles[sourcecount] = sourcefile;\n            progressBarCopy.Value = 10;\n            if (ReplaceFrom != \"\")\n            {\n                if (likeFile == true)\n                    targetfiles[sourcecount] = target + sourcefileName.Replace(ReplaceFrom, ReplaceTo).Replace(ReplaceFrom2, ReplaceTo2);\n                else if (sourcefileName.ToUpper() == ReplaceFrom.ToUpper())\n                    targetfiles[sourcecount] = target + sourcefileName.Replace(ReplaceFrom, ReplaceTo).Replace(ReplaceFrom2, ReplaceTo2);\n                else\n                    targetfiles[sourcecount] = target + sourcefileName.Replace(ReplaceFrom2, ReplaceTo2);\n            }\n            else\n                targetfiles[sourcecount] = target + sourcefileName;\n\n            if (FileSystem.Dir(targetfiles[sourcecount]) != \"\")\n            {\n                if (Interaction.MsgBox(targetfiles[sourcecount] + \"\u5df2\u7ecf\u5b58\u5728,\u662f\u5426\u66ff\u6362?\", Constants.vbYesNo, \"\u6587\u4ef6\u6253\u5305\") == Constants.vbNo)\n                {\n                    progressBarCopy.Value = 0;\n                    return;\n                }\n            }\n\n            try\n            {\n                FileSystem.FileCopy(sourcefiles[sourcecount], targetfiles[sourcecount]);\n            }\n            catch (Exception ex)\n            {\n            }\n            progressBarCopy.Value = 35;\n            sourcecount = sourcecount + 1;\n\n            if (FileSystem.Dir(Strings.Replace(sourcefile, \".SLDASM\", \".SLDDRW\")) != \"\")\n            {\n                oldSourcefiles = sourcefiles;\n                sourcefiles = new string[sourcecount + 1];\n                if (oldSourcefiles != null)\n                    Array.Copy(oldSourcefiles, sourcefiles, Math.Min(sourcecount + 1, oldSourcefiles.Length));\n                oldTargetfiles = targetfiles;\n                targetfiles = new string[sourcecount + 1];\n                if (oldTargetfiles != null)\n                    Array.Copy(oldTargetfiles, targetfiles, Math.Min(sourcecount + 1, oldTargetfiles.Length));\n\n                sourcefiles[sourcecount] = Strings.Replace(sourcefile, \".SLDASM\", \".SLDDRW\");\n                sourcefileName = System.IO.Path.GetFileName(sourcefiles[sourcecount]);\n                if (ReplaceFrom != \"\")\n                {\n                    if (likeFile == true)\n                        targetfiles[sourcecount] = target + sourcefileName.Replace(ReplaceFrom, ReplaceTo).Replace(ReplaceFrom2, ReplaceTo2);\n                    else if (sourcefileName.ToUpper() == ReplaceFrom.ToUpper())\n                        targetfiles[sourcecount] = target + sourcefileName.Replace(ReplaceFrom, ReplaceTo).Replace(ReplaceFrom2, ReplaceTo2);\n                    else\n                        targetfiles[sourcecount] = target + sourcefileName.Replace(ReplaceFrom2, ReplaceTo2);\n                }\n                else\n                    targetfiles[sourcecount] = target + sourcefileName;\n\n                if (FileSystem.Dir(targetfiles[sourcecount]) != \"\")\n                {\n                    if (Interaction.MsgBox(targetfiles[sourcecount] + \"\u5df2\u7ecf\u5b58\u5728,\u662f\u5426\u66ff\u6362?\", Constants.vbYesNo, \"\u6587\u4ef6\u6253\u5305\") == Constants.vbNo)\n                        return;\n                }\n\n                try\n                {\n                    FileSystem.FileCopy(sourcefiles[sourcecount], targetfiles[sourcecount]);\n                }\n                catch (Exception ex)\n                {\n                }\n                sourcecount = sourcecount + 1;\n            }\n            progressBarCopy.Value = 50;\n            depends = (string[])swApp.GetDocumentDependencies2(sourcefile, true, true, false);\n\n            if (depends == null)\n                return;\n            bool bRet;\n            var idx = 1;\n\n            while (idx &lt;= Information.UBound(depends))\n            {\n                oldSourcefiles = sourcefiles;\n                sourcefiles = new string[sourcecount + 1];\n                if (oldSourcefiles != null)\n                    Array.Copy(oldSourcefiles, sourcefiles, Math.Min(sourcecount + 1, oldSourcefiles.Length));\n                oldTargetfiles = targetfiles;\n                targetfiles = new string[sourcecount + 1];\n                if (oldTargetfiles != null)\n                    Array.Copy(oldTargetfiles, targetfiles, Math.Min(sourcecount + 1, oldTargetfiles.Length));\n\n                sourcefiles[sourcecount] = depends[idx].ToString();\n                sourcefileName = System.IO.Path.GetFileName(depends[idx].ToString());\n                if (ReplaceFrom != \"\")\n                {\n                    if (likeFile == true)\n                        targetfiles[sourcecount] = target + sourcefileName.Replace(ReplaceFrom, ReplaceTo).Replace(ReplaceFrom2, ReplaceTo2);\n                    else if (sourcefileName.ToUpper() == ReplaceFrom.ToUpper())\n                        targetfiles[sourcecount] = target + sourcefileName.Replace(ReplaceFrom, ReplaceTo).Replace(ReplaceFrom2, ReplaceTo2);\n                    else\n                        targetfiles[sourcecount] = target + sourcefileName.Replace(ReplaceFrom2, ReplaceTo2);\n                }\n                else\n                    targetfiles[sourcecount] = target + sourcefileName;\n\n                try\n                {\n                    FileSystem.FileCopy(sourcefiles[sourcecount], targetfiles[sourcecount]);\n                }\n                catch (Exception ex)\n                {\n                }\n\n                idx = idx + 2;\n                sourcecount = sourcecount + 1;\n            }\n\n            \/\/ swApp.SendMsgToUser(\"Done\")\n            progressBarCopy.Value = 80;\n            for (int n = 0; n &lt;= sourcecount - 1; n++)\n            {\n                var NewName = targetfiles[n];\n\n                var RefQ = swApp.GetDocumentDependenciesCount(NewName, 1, 1) \/ (double)2;\n\n                \/\/ Debug.Print(NewName &amp; \"---&gt;\u53c2\u8003\u6587\u4ef6\u6709  \" &amp; RefQ)\n\n                if (RefQ &gt; 0)\n                {\n                    var q = 0;\n                    for (q = 0; q &lt;= sourcecount - 1; q++)\n                    {\n                        if (n == q)\n                        {\n                        }\n                        else\n                            bRet = swApp.ReplaceReferencedDocument(targetfiles[n], System.IO.Path.GetFileName(sourcefiles[q]), targetfiles[q]);\n                    }\n                }\n            }\n\n            progressBarCopy.Value = 95;\n        }\n  <\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>          posted @<br \/>\n<span>2019-11-22 09:15<\/span>&nbsp;<br \/>\n<a href=\"https:\/\/www.cnblogs.com\/solidworksapi\/\" target=\"_blank\" rel=\"nofollow noopener\">painezeng<\/a>&nbsp; \u9605\u8bfb(<br \/>\n<span>214<\/span>)&nbsp; \u8bc4\u8bba(<br \/>\n<span>0<\/span>)&nbsp;<br \/>\n<a href=\"https:\/\/i.cnblogs.com\/EditPosts.aspx?postid=12897450\" 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; \u5b9e\u4f8b\uff1a\u6253\u5305\u6587\u4ef6 \u6211\u4eec\u5f00\u53d1\u7684\u7a0b\u5e8f\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u7ecf\u5e38\u8981\u4f7f [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":609,"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-608","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-solidworks-","category-solidworks","tag-api","tag-solidworks","tag-8"],"views":346,"_links":{"self":[{"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/posts\/608","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=608"}],"version-history":[{"count":0,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/posts\/608\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/media\/609"}],"wp:attachment":[{"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=608"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}