{"id":530,"date":"2022-03-02T21:39:00","date_gmt":"2022-03-02T13:39:00","guid":{"rendered":"http:\/\/localhost:8080\/?p=530"},"modified":"2022-03-02T21:39:00","modified_gmt":"2022-03-02T13:39:00","slug":"solidworks-pdm%e4%ba%8c%e6%ac%a1%e5%bc%80%e5%8f%91-%e8%8e%b7%e5%8f%96%e5%ba%93%e4%b8%ad%e7%9a%84%e6%96%87%e4%bb%b6%e4%bf%a1%e6%81%af","status":"publish","type":"post","link":"https:\/\/blog.ke-zhi.com\/?p=530","title":{"rendered":"SolidWorks PDM\u4e8c\u6b21\u5f00\u53d1&#8212;\u83b7\u53d6\u5e93\u4e2d\u7684\u6587\u4ef6\u4fe1\u606f"},"content":{"rendered":"<h1> <a href=\"https:\/\/www.cnblogs.com\/solidworksapi\/p\/17369390.html\" target=\"_blank\" rel=\"nofollow noopener\"> <span>SolidWorks PDM\u4e8c\u6b21\u5f00\u53d1&#8212;\u83b7\u53d6\u5e93\u4e2d\u7684\u6587\u4ef6\u4fe1\u606f<\/span> <\/a> <\/h1>\n<p>\u5728\u4f11\u606f\u4e86\u4e00\u4e2a\u6708\u4e4b\u540e\uff0c\u535a\u5ba2\u7ee7\u7eed\u5f00\u59cb\u66f4\u65b0\u3002<br \/> \u4eca\u5929\u6211\u4eec\u7b80\u5355\u4e00\u70b9\uff0c\u76f4\u63a5\u4e0a\u4ee3\u7801\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/28d10a8bacca4c11b84f0737ff08ad30.png?x-oss-process=image\/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUGFpbmUgWmVuZw==,size_19,color_FFFFFF,t_70,g_se,x_16\" class=\"aligncenter\"><\/p>\n<pre><code>\t\t<span>private<\/span> <span>void<\/span> <span>btnGetSelectFileInfo_Click<\/span><span>(<\/span><span>object<\/span> sender<span>,<\/span> <span>EventArgs<\/span> e<span>)<\/span>\n        <span>{<\/span>\n            <span>try<\/span>\n            <span>{<\/span>\n                <span>var<\/span> vault <span>=<\/span> <span>new<\/span> <span>EdmVault5<\/span><span>(<\/span><span>)<\/span><span>;<\/span>\n                <span>\/\/\u767b\u9646\u5230\u5e93\u4e2d<\/span>\n                vault<span>.<\/span><span>LoginAuto<\/span><span>(<\/span><span>\"PDM2020Default\"<\/span><span>,<\/span> <span>this<\/span><span>.<\/span>Handle<span>.<\/span><span>ToInt32<\/span><span>(<\/span><span>)<\/span><span>)<\/span><span>;<\/span>\n\n                <span>\/\/\u5982\u679c\u7528\u6237\u767b\u5f55\u6210\u529f\uff0c\u663e\u793a\u4e0b\u672c\u5730\u5e93\u6839\u76ee\u5f55\u8def\u5f84<\/span>\n                <span>if<\/span> <span>(<\/span><span>!<\/span>vault<span>.<\/span>IsLoggedIn<span>)<\/span> <span>return<\/span><span>;<\/span>\n                <span>OpenFileDialog<\/span> openFileDialog <span>=<\/span> <span>new<\/span> <span>OpenFileDialog<\/span><span>(<\/span><span>)<\/span><span>;<\/span>\n                openFileDialog<span>.<\/span>InitialDirectory <span>=<\/span> vault<span>.<\/span>RootFolderPath<span>;<\/span>\n                openFileDialog<span>.<\/span>Multiselect <span>=<\/span> <span>false<\/span><span>;<\/span>\n                <span>if<\/span> <span>(<\/span>openFileDialog<span>.<\/span><span>ShowDialog<\/span><span>(<\/span><span>)<\/span> <span>!=<\/span> DialogResult<span>.<\/span>OK<span>)<\/span> <span>return<\/span><span>;<\/span>\n                <span>GetFileInformation<\/span><span>(<\/span>vault<span>,<\/span> openFileDialog<span>.<\/span>FileNames<span>[<\/span><span>0<\/span><span>]<\/span><span>)<\/span><span>;<\/span>\n                <span>return<\/span><span>;<\/span>\n            <span>}<\/span>\n            <span>catch<\/span> <span>(<\/span><span>Exception<\/span> exception<span>)<\/span>\n            <span>{<\/span>\n                Console<span>.<\/span><span>WriteLine<\/span><span>(<\/span>exception<span>)<\/span><span>;<\/span>\n                <span>throw<\/span><span>;<\/span>\n            <span>}<\/span>\n        <span>}<\/span>\n\n\n   \t\t <span>\/\/\/ &lt;summary&gt;<\/span>\n        <span>\/\/\/ \u663e\u793a\u5e93\u6587\u4ef6\u4e2d\u7684\u4e00\u4fe1\u606f<\/span>\n        <span>\/\/\/ &lt;\/summary&gt;<\/span>\n        <span>\/\/\/ &lt;param name=\"vault1\"&gt;\u5e93\u5bf9\u8c61&lt;\/param&gt;<\/span>\n        <span>\/\/\/ &lt;param name=\"filePath\"&gt;\u6587\u4ef6\u8def\u5f84&lt;\/param&gt;<\/span>\n        <span>private<\/span> <span>void<\/span> <span>GetFileInformation<\/span><span>(<\/span><span>IEdmVault5<\/span> vault1<span>,<\/span> <span>string<\/span> filePath<span>)<\/span>\n        <span>{<\/span>\n            <span>try<\/span>\n            <span>{<\/span>\n                <span>IEdmVault7<\/span> vault2 <span>=<\/span> <span>null<\/span><span>;<\/span>\n                vault2 <span>=<\/span> <span>(<\/span>IEdmVault7<span>)<\/span>vault1<span>;<\/span>\n\n                <span>IEdmFile14<\/span> aFile <span>=<\/span> <span>default<\/span><span>(<\/span>IEdmFile16<span>)<\/span><span>;<\/span>\n                <span>IEdmFolder5<\/span> ppoRetParentFolder<span>;<\/span>\n                aFile <span>=<\/span> <span>(<\/span>IEdmFile16<span>)<\/span>vault2<span>.<\/span><span>GetFileFromPath<\/span><span>(<\/span>filePath<span>,<\/span> <span>out<\/span> ppoRetParentFolder<span>)<\/span><span>;<\/span>\n\n                <span>\/\/Get configurations \u83b7\u53d6\u914d\u7f6e<\/span>\n                <span>string<\/span> msg <span>=<\/span> <span>\"Configurations: \"<\/span> <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n                <span>IEdmFolder5<\/span> folder <span>=<\/span> <span>default<\/span><span>(<\/span>IEdmFolder5<span>)<\/span><span>;<\/span>\n                folder <span>=<\/span> vault2<span>.<\/span>RootFolder<span>;<\/span>\n\n                <span>EdmStrLst5<\/span> cfgList <span>=<\/span> <span>default<\/span><span>(<\/span>EdmStrLst5<span>)<\/span><span>;<\/span>\n                cfgList <span>=<\/span> aFile<span>.<\/span><span>GetConfigurations<\/span><span>(<\/span><span>)<\/span><span>;<\/span>\n\n                <span>IEdmPos5<\/span> pos <span>=<\/span> <span>default<\/span><span>(<\/span>IEdmPos5<span>)<\/span><span>;<\/span>\n                pos <span>=<\/span> cfgList<span>.<\/span><span>GetHeadPosition<\/span><span>(<\/span><span>)<\/span><span>;<\/span>\n                <span>while<\/span> <span>(<\/span><span>!<\/span>pos<span>.<\/span>IsNull<span>)<\/span>\n                <span>{<\/span>\n                    <span>var<\/span> cfgName <span>=<\/span> cfgList<span>.<\/span><span>GetNext<\/span><span>(<\/span>pos<span>)<\/span><span>;<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> cfgName <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n                <span>}<\/span>\n\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                <span>\/\/Get type of file \u6587\u4ef6\u7c7b\u578b<\/span>\n                <span>int<\/span> typ <span>=<\/span> <span>0<\/span><span>;<\/span>\n                typ <span>=<\/span> <span>(<\/span><span>int<\/span><span>)<\/span>aFile<span>.<\/span>FileType<span>;<\/span>\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"EdmFileType: \"<\/span> <span>+<\/span> typ <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                <span>\/\/Get category of file \u6587\u4ef6\u7c7b\u522b<\/span>\n                <span>IEdmCategory6<\/span> cat <span>=<\/span> <span>default<\/span><span>(<\/span>IEdmCategory6<span>)<\/span><span>;<\/span>\n                cat <span>=<\/span> aFile<span>.<\/span>Category<span>;<\/span>\n                <span>if<\/span> <span>(<\/span><span>(<\/span>cat <span>!=<\/span> <span>null<\/span><span>)<\/span><span>)<\/span>\n                <span>{<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"Category: \"<\/span> <span>+<\/span> cat<span>.<\/span>Name <span>+<\/span> <span>\", Category ID: \"<\/span> <span>+<\/span> aFile<span>.<\/span>CategoryID <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n                <span>}<\/span>\n\n                <span>\/\/Get local file timestamp \u6587\u4ef6\u65f6\u95f4\u6233<\/span>\n                filePath <span>=<\/span> aFile<span>.<\/span>Name<span>;<\/span>\n                <span>object<\/span> fileDate <span>=<\/span> <span>null<\/span><span>;<\/span>\n                fileDate <span>=<\/span> aFile<span>.<\/span><span>GetLocalFileDate<\/span><span>(<\/span>filePath<span>)<\/span><span>;<\/span>\n\n                <span>if<\/span> <span>(<\/span><span>(<\/span>fileDate <span>!=<\/span> <span>null<\/span><span>)<\/span><span>)<\/span>\n                <span>{<\/span>\n                    <span>string<\/span> text <span>=<\/span> <span>null<\/span><span>;<\/span>\n                    text <span>=<\/span> fileDate<span>.<\/span><span>ToString<\/span><span>(<\/span><span>)<\/span><span>;<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> aFile<span>.<\/span><span>GetLocalPath<\/span><span>(<\/span>folder<span>.<\/span>ID<span>)<\/span> <span>+<\/span> <span>\" was modified \"<\/span> <span>+<\/span> text <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n                <span>}<\/span>\n                <span>else<\/span>\n                <span>{<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"There is no local copy of the file\"<\/span> <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n                <span>}<\/span>\n\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                <span>\/\/Get local version number \u672c\u5730\u7248\u672c<\/span>\n                <span>int<\/span> versionNo <span>=<\/span> <span>0<\/span><span>;<\/span>\n                versionNo <span>=<\/span> aFile<span>.<\/span><span>GetLocalVersionNo<\/span><span>(<\/span>aFile<span>.<\/span><span>GetLocalPath<\/span><span>(<\/span>folder<span>.<\/span>ID<span>)<\/span><span>)<\/span><span>;<\/span>\n\n                <span>if<\/span> <span>(<\/span>versionNo <span>==<\/span> <span>-<\/span><span>1<\/span><span>)<\/span>\n                <span>{<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"The local copy of \"<\/span> <span>+<\/span> aFile<span>.<\/span>Name <span>+<\/span> <span>\" does not match any existing versions\"<\/span> <span>+<\/span>\n                          <span>\"\\r\\n\"<\/span><span>;<\/span>\n                <span>}<\/span>\n                <span>else<\/span>\n                <span>{<\/span>\n                    <span>string<\/span> versionStr <span>=<\/span> <span>null<\/span><span>;<\/span>\n                    versionStr <span>=<\/span> versionNo<span>.<\/span><span>ToString<\/span><span>(<\/span><span>)<\/span><span>;<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"The local copy of \"<\/span> <span>+<\/span> aFile<span>.<\/span>Name <span>+<\/span> <span>\" has version \"<\/span> <span>+<\/span> versionStr <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n                <span>}<\/span>\n\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                <span>\/\/Get current version \u5f53\u524d\u7248\u672c<\/span>\n                <span>int<\/span> ver <span>=<\/span> <span>0<\/span><span>;<\/span>\n                ver <span>=<\/span> aFile<span>.<\/span>CurrentVersion<span>;<\/span>\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"Current version: \"<\/span> <span>+<\/span> ver <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                <span>\/\/Get local revision name \u672c\u5730\u4fee\u8ba2\u540d\u79f0<\/span>\n                <span>string<\/span> revName <span>=<\/span> <span>null<\/span><span>;<\/span>\n                revName <span>=<\/span> aFile<span>.<\/span><span>GetLocalRevisionName<\/span><span>(<\/span>aFile<span>.<\/span><span>GetLocalPath<\/span><span>(<\/span>folder<span>.<\/span>ID<span>)<\/span><span>)<\/span><span>;<\/span>\n\n                <span>if<\/span> <span>(<\/span><span>string<\/span><span>.<\/span><span>IsNullOrEmpty<\/span><span>(<\/span>revName<span>)<\/span><span>)<\/span>\n                <span>{<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"The local copy of \"<\/span> <span>+<\/span> aFile<span>.<\/span>Name <span>+<\/span> <span>\" does not match any existing revisions\"<\/span> <span>+<\/span>\n                          <span>\"\\r\\n\"<\/span><span>;<\/span>\n                <span>}<\/span>\n                <span>else<\/span>\n                <span>{<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"The local copy of \"<\/span> <span>+<\/span> aFile<span>.<\/span>Name <span>+<\/span> <span>\" has revision name \"<\/span> <span>+<\/span> revName <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n                <span>}<\/span>\n\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                <span>\/\/Get current revision \u83b7\u53d6\u5f53\u524d\u4fee\u8ba2<\/span>\n                revName <span>=<\/span> aFile<span>.<\/span>CurrentRevision<span>;<\/span>\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"Current revision: \"<\/span> <span>+<\/span> revName <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                <span>\/\/Get current workflow state \u5f53\u524d\u6d41\u7a0b\u72b6\u6001<\/span>\n                <span>IEdmState5<\/span> state <span>=<\/span> <span>default<\/span><span>(<\/span>IEdmState5<span>)<\/span><span>;<\/span>\n                state <span>=<\/span> aFile<span>.<\/span>CurrentState<span>;<\/span>\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"Current workflow state: \"<\/span> <span>+<\/span> state<span>.<\/span>Name <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n\n                <span>\/\/Get whether the file is checked out \u662f\u5426\u68c0\u51fa<\/span>\n                <span>bool<\/span> checkedOut <span>=<\/span> <span>false<\/span><span>;<\/span>\n                checkedOut <span>=<\/span> aFile<span>.<\/span>IsLocked<span>;<\/span>\n                msg <span>=<\/span> msg <span>+<\/span> <span>\"File is checked out? \"<\/span> <span>+<\/span> checkedOut <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n                <span>if<\/span> <span>(<\/span>checkedOut<span>)<\/span>\n                <span>{<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"Lock path: \"<\/span> <span>+<\/span> aFile<span>.<\/span>LockPath <span>+<\/span> <span>\"\\r\\n\"<\/span><span>;<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"Locked by: \"<\/span> <span>+<\/span> aFile<span>.<\/span>LockedByUser<span>.<\/span>Name <span>+<\/span> <span>\", User ID: \"<\/span> <span>+<\/span> aFile<span>.<\/span>LockedByUserID <span>+<\/span>\n                          <span>\"\\r\\n\"<\/span><span>;<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"Locked in: \"<\/span> <span>+<\/span> aFile<span>.<\/span>LockedInFolder<span>.<\/span>Name <span>+<\/span> <span>\", Folder ID: \"<\/span> <span>+<\/span> aFile<span>.<\/span>LockedInFolderID <span>+<\/span>\n                          <span>\"\\r\\n\"<\/span><span>;<\/span>\n                    msg <span>=<\/span> msg <span>+<\/span> <span>\"Locked on: \"<\/span> <span>+<\/span> aFile<span>.<\/span>LockedOnComputer <span>+<\/span> <span>\", Vault View ID: \"<\/span> <span>+<\/span> aFile<span>.<\/span>LockedOnViewID<span>;<\/span>\n                <span>}<\/span>\n\n\n                MessageBox<span>.<\/span><span>Show<\/span><span>(<\/span>msg<span>)<\/span><span>;<\/span>\n            <span>}<\/span>\n            <span>catch<\/span> <span>(<\/span><span>System<span>.<\/span>Runtime<span>.<\/span>InteropServices<span>.<\/span>COMException<\/span> ex<span>)<\/span>\n            <span>{<\/span>\n                MessageBox<span>.<\/span><span>Show<\/span><span>(<\/span><span>\"HRESULT = 0x\"<\/span> <span>+<\/span> ex<span>.<\/span>ErrorCode<span>.<\/span><span>ToString<\/span><span>(<\/span><span>\"X\"<\/span><span>)<\/span> <span>+<\/span> <span>\" \"<\/span> <span>+<\/span> ex<span>.<\/span>Message<span>)<\/span><span>;<\/span>\n            <span>}<\/span>\n            <span>catch<\/span> <span>(<\/span><span>Exception<\/span> ex<span>)<\/span>\n            <span>{<\/span>\n                MessageBox<span>.<\/span><span>Show<\/span><span>(<\/span>ex<span>.<\/span>Message<span>)<\/span><span>;<\/span>\n            <span>}<\/span>\n        <span>}<\/span>\n\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/b27fa51954e64635b0e7fbc4e01d4144.png?x-oss-process=image\/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUGFpbmUgWmVuZw==,size_20,color_FFFFFF,t_70,g_se,x_16\" class=\"aligncenter\"><br \/> \u7ed3\u679c\u663e\u793a:<img decoding=\"async\" src=\"https:\/\/img-blog.csdnimg.cn\/0e2fcd8efa8047d4bb458f3f0e852834.png?x-oss-process=image\/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUGFpbmUgWmVuZw==,size_12,color_FFFFFF,t_70,g_se,x_16\" class=\"aligncenter\"><\/p>\n<p>\u6587\u4ef6\u8fd8\u662f\u8001\u5730\u65b9:<br \/> <a href=\"https:\/\/gitee.com\/painezeng\/solidworks-pdmprofessional-apistudy.git\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/gitee.com\/painezeng\/solidworks-pdmprofessional-apistudy.git<\/a><\/p>\n<p>          posted @<br \/>\n<span>2022-03-02 21:39<\/span>&nbsp;<br \/>\n<a href=\"https:\/\/www.cnblogs.com\/solidworksapi\/\" target=\"_blank\" rel=\"nofollow noopener\">painezeng<\/a>&nbsp; \u9605\u8bfb(<br \/>\n<span>0<\/span>)&nbsp; \u8bc4\u8bba(<br \/>\n<span>0<\/span>)&nbsp;<br \/>\n<a href=\"https:\/\/i.cnblogs.com\/EditPosts.aspx?postid=17369390\" 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> &nbsp;<br \/>\n<a href=\"\" target=\"_blank\" rel=\"nofollow noopener\">\u6765\u6e90<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SolidWorks PDM\u4e8c\u6b21\u5f00\u53d1&#8212;\u83b7\u53d6\u5e93\u4e2d\u7684\u6587\u4ef6\u4fe1\u606f \u5728\u4f11\u606f\u4e86\u4e00\u4e2a\u6708\u4e4b\u540e\uff0c\u535a\u5ba2\u7ee7\u7eed\u5f00\u59cb\u66f4\u65b0\u3002  [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":531,"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-530","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-solidworks-","category-solidworks","tag-api","tag-solidworks","tag-8"],"views":206,"_links":{"self":[{"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/posts\/530","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=530"}],"version-history":[{"count":0,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/posts\/530\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=\/wp\/v2\/media\/531"}],"wp:attachment":[{"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=530"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/blog.ke-zhi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}