所谓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. 第四范式推出业界首个基于持久内存、支持毫秒级恢复的万亿维线上预估系统...
  2. C++11学习笔记-----线程库std::thread
  3. linux 启动程序 绑定id,linux如何根据进程ID查找启动程序的路径
  4. YbtOJ#903-染色方案【拉格朗日插值,NTT,分治】
  5. 前端学习(3183):ant-design的button介绍按钮属性
  6. 谈谈对 Spring 的理解
  7. mysql数据库 day03
  8. Oracle中 char varchar varchar2的区别
  9. 【第7篇】Python爬虫实战-收集gitee中的issue问题
  10. Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示的原因及解决办法...
  11. Win10截图和草图无法使用怎么办
  12. VBA基础函数:取数组最大下标——UBound函数
  13. iOS第三方登录之Twitter(登录,获取用户信息)含demo
  14. 用css改变图片背景色颜色
  15. Opencv-Python提取掌纹图片ROI
  16. Python学习 Day28 JS函数(二)
  17. 《乔布斯传》英文原著重点词汇笔记(六)【 chapter four 】
  18. 微信小程序:长期稳定短视频去水印
  19. 2023年MathorCup数模A题赛题
  20. 通过连接大华dss平台来实现查看摄像头画面和实现云台控制功能Extjs

热门文章

  1. Python Shell 以及cmd命令行窗口清屏方法
  2. Linux 自定义 RPM 包及制作 YUM 仓库
  3. 开学后的狂欢-----C++中的sort函数
  4. 百度云 无限下载速度的方法
  5. 我国电信运营商经营即时通信业务前景分析
  6. 分享一些渗透测试的工具(压箱底的)(附带下载链接)
  7. 天猫店铺抽取的红包在哪里领取看,关于淘宝购物分享优惠商品的群
  8. 丑小鸭的浴火重生之路
  9. CentOS7安装新字体
  10. 我的世界1.14刷雪机java版_我的世界全自动刷雪机图文攻略 手把手教你刷雪机怎么做...