所谓Solidworks窗口程序,即区别于插件,独立运行的程序,当然这只是我自己的命名。相较于插件程序的种种问题,窗体程序对于入门者来说,要友善很多,也容易很多,我常用来做调试,不用像插件程序每次启动Solidworks。当然窗口程序也有一些缺陷,比如因为是跨线程操作,速度慢要一点。

基本步骤如下:

建立一个WinForm项目:

1、添加如下引用:

using SolidWorks.Interop.sldworks;
    using SolidWorks.Interop.swconst;
    using SolidWorks.Interop.swcommands;

如果在.Net项找不到以上引用,可以直接浏览Solidworks目录下的文件,我一般是复制下来在程序的目录

2、获取Sldworks对象,注意,运行前要先启动solidworks

窗口程序不像插件程序,要手动获取Sldworks对象:

#region 获取SLDWORKS

public static SldWorks swApp { get; set; }

/// <summary>
        /// 连接Solidworks
        /// </summary>
        public static SldWorks ConnectSW()
        {

//SldWorks swapp = null;

//尝试连接已打开的Solidworks
            if (swApp == null)
            {
                Process[] processArr = null;
                processArr = Process.GetProcessesByName("SLDWORKS");
                if (processArr.Length > 0)
                {
                    //通过SldWorks.Application方式
                    try
                    {
                        swApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application");
                    }
                    catch (Exception)
                    {

}
                    //通过SldWorks.Application.18方式,.18=2010版,.19=2011版,.20=2012版,.21=2013版,.22=2014版,.23=2015版
                    if (swApp == null)
                    {
                        for (int i = 18; i < 28; i++)
                        {
                            try
                            {
                                swApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application." + i.ToString());
                                if (swApp != null)
                                {
                                    break;
                                }
                            }
                            catch (Exception)
                            {

}
                        }
                    }
                    //通过Guid的方式
                    if (swApp == null)//2010sw
                    {
                        try
                        {
                            Guid myGuid1 = new Guid("6894540C-3171-484F-9E97-6A962559BA30");
                            object processSW = System.Activator.CreateInstance(System.Type.GetTypeFromCLSID(myGuid1));
                            swApp = (SldWorks)processSW;
                        }
                        catch (Exception)
                        {

}
                    }
                    if (swApp == null)//2012sw
                    {
                        try
                        {
                            Guid myGuid1 = new Guid("B4875E89-91F6-4124-BB63-2539727E98FA");
                            object processSW = System.Activator.CreateInstance(System.Type.GetTypeFromCLSID(myGuid1));
                            swApp = (SldWorks)processSW;
                        }
                        catch (Exception)
                        {

}
                    }
                    //通过SldWorks.ISldWorks方式
                    if (swApp == null)
                    {
                        try
                        {
                            swApp = (SldWorks)Marshal.GetActiveObject("SldWorks.ISldWorks");
                        }
                        catch (Exception)
                        {

}
                    }
                }
            }
            //尝试连接注册表中注册的solidworks,可未打开状态,SldWorksClass() 方式
            if (swApp == null)
            {
                try
                {
                    //swApp = new SldWorksClass();
                }
                catch (Exception)
                {

}
            }

//

return swApp;
        }
        #endregion

3、有了sldworks对象,就可以开始操作solidworks

Solidworks窗口程序相关推荐

  1. Win32API 窗口程序的创建7大步骤

    Win32API 窗口程序的创建7大步骤 1 定义WinMain入口函数 2 定义窗口处理函数 WindowsProc(用来处理消息.有如公司业务处理,具体干活的人.) 3 注册窗口类 Registe ...

  2. python窗口程序-窗口程序python

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 让 gui 程序启动和运行起来需要以下 5 个主要步骤:导入 tkint ...

  3. 汇编实验:屏幕窗口程序(代码有较为详细的注释)

    实验3.4 屏幕窗口程序 1.题目:屏幕窗口程序 2.实验要求: 在屏幕上开出三个窗口,它们的行列坐标按照教材要求.光标首先定位在右窗口最下面一行的行首(15,50),如从键盘输入字符,则显示在右窗口 ...

  4. 安装汇编环境,写一个最简单的窗口程序

    用汇编写一个窗口程序 1.安装汇编所需的环境 1.下载masm32 下载地址 可以安装到D:\masm32目录下 2.配置环境变量 include = D:\masm32\include lib = ...

  5. QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数

    版权声明 请尊重原创作品.转载请保持文章完整性,并以超链接形式注明原始作者"tingsking18"和主站点地址,方便其他朋友提问和指正. QT源码解析(一) QT创建窗口程序.消 ...

  6. 让Win32窗口程序拥有控制台窗口

    让Win32窗口程序拥有控制台窗口 首先,为什么我们有了普通窗口后还要控制台窗口呢?因为我们可以用它方便的输出调试信息,而且普通玩家看到了也会觉得很高端.如果他会输几条命令,可能他会以为自己就是黑客了 ...

  7. 【Qt】Qt窗口程序

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 程序设计 04. 程序执行 05. 预留 06. 附录 01. 概述 程序要实现的功能是:运行开始出现一个对话框,按下登录 ...

  8. 窗口程序ImageView(仿QQ图片查看器)

    近期一直在学习窗口程序之类的问题,下午正好有机会和大家讨论一下. 程序运行截图: 应用方法: 1.直接把图像文件拖到图标上表现 2.通过命令行方式,示例:ImageView.exe "带全路 ...

  9. 第一个 Win32 窗口程序

    第一个 Win32 窗口程序 程序骨架 int WinMain(){ // 设计窗口外观及交互响应,注册,申请专利RegisterClass(...) ;// 生产窗口 CreateWindow(.. ...

最新文章

  1. Deep Learning 学习随记(三)续 Softmax regression练习
  2. 算法-----前 k 个出现次数最多的单词
  3. java开发环境选择
  4. jquery表格复选框简单练习及prop(),attr()的应用原则
  5. Pure-ftpd搭建FTP
  6. Xen 工作原理与体系架构
  7. php面试题11(边看边复习刚刚讲的)(array_multisort($arr1,$arr2); 用$arr1来排序$arr2。)...
  8. 是的,我打败了一个奥特曼。
  9. [机器学习笔记]Note15--大规模机器学习
  10. Redis命令性能优化及事务使用过程
  11. 原生JS大揭秘—数据类型
  12. (43)FPGA面试技能提升篇(Questa简介)
  13. [转]VC6 STLport-5.1.4 编译 安装
  14. EventLoop-浏览器与Node.js--整理
  15. 图谱实战 | 开源知识图谱融合工具剖析:Dedupe与OpenEA工具实现思想、关键环节与实操分析...
  16. Worker小Demo
  17. 五线谱音名和组别对照表_五线谱上区别各个音的组别
  18. nginx简单配置多个域名转向多个tomcat
  19. outlook安全模式修复_Outlook Com安全漏洞Microsoft无法修复
  20. 红米路由器ac2100怎样设置ipv6_红米(Redmi)路由器AC2100怎么设置

热门文章

  1. JetBrains 远程开发 极致体验
  2. SpringMVC访问WEB-INF下的jsp解决方案Spring Boot集成使用jsp
  3. 中文手写输入法在iOS8.1上的崩溃问题
  4. A Practical Model for Subsurface Light Transport
  5. 怎样找到ant压缩这个软件_彻底查杀广告软件!火绒,赞!
  6. DataWhale-天池街景数字识别竞赛-task1-赛题理解
  7. Python kmp算法部分匹配表(pmt)和next
  8. vue首屏性能优化,解决页面加载时间过长(白屏)方法
  9. 微信小程序 php读取数据,在微信小程序中如何获取输入数据
  10. 颜色的Pantone编码