美文网首页
solidowrks二次开发C#--solidworks预览

solidowrks二次开发C#--solidworks预览

作者: dududuwei | 来源:发表于2018-09-16 00:02 被阅读0次

    一.为什么要预览

    预览很多时候用在pdm上,一般浏览的时候也需要浏览,这比直接读文件名来判断这是什么文件来的直接,可以减少寻找到需要文件的时间。

    二.solidworks文件的预览方式

    1.solidworks文件在资源浏览器中就可以预览到零件的外观图片,用solidworks打开来选择零件也可以预览。
    2.使用扩展资源浏览器的方式实现预览;
    3.在安装有solidworks的电脑上实现预览;
    4.在打开solidworks的情况下预览;
    5.在关闭solidworks的情况下预览;
    6.在没有安装solidworks的情况下预览;

    三.我们该选择哪一种预览方式

    我推荐使用添加edrawing控件的方式实现预览
    可以实现在无solidworks安装的情况下实现预览;
    而且预览不只是一张图片,还可以实现放大缩下,旋转等操作;
    可以用作.net控件方便的嵌入到我们的程序当中。


    预览.gif

    四.如何添加solidworks的edrawing预览控件

    1.添加edrawing控件的两个dll;

    using eDrawingHostControl;
    using EModelView;
    

    2.在窗口的load事件中将控件加到窗体上;

    3.对窗体的控件大小属性赋值;

    ctrl.Location = new Point(230, 10);
    ctrl.Size = new System.Drawing.Size(350, 350);
    ctrl.eDrawingControlWrapper.FullUI = 0;
    

    4.使用控件的OpenDoc放大打开文档

    ctrl.eDrawingControlWrapper.OpenDoc(partPath_Tem + "\\" + Name, false, false, true, "");
    
    例如你的Clsid是{0321CD0E-FC6A-4537-BE25-F786CF2C8C1C}
    //通过反射来创建[ActiveX控件](https://www.baidu.com/s?wd=ActiveX%E6%8E%A7%E4%BB%B6&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)
    Type type = Type.GetTypeFromCLSID(new Guid(“0321CD0E-FC6A-4537-BE25-F786CF2C8C1C”));
    if (null != type)
    {
    object activeControl = Activator.CreateInstance(type);
    }
    创建出来以后通过类型装换,转换你对应的类
    
    追问
    
    <pre accuse="qRA" style="margin: 0px; padding: 0px; font-family: &quot;PingFang SC&quot;, &quot;Lantinghei SC&quot;, &quot;Microsoft YaHei&quot;, arial, 宋体, sans-serif, tahoma; white-space: pre-wrap; word-wrap: break-word;">private static object GetActiveXObject(Guid clsid)
            {
                Type t = Type.GetTypeFromCLSID(clsid);
                if (t == null)
                {
                    return null;
                }
                return Activator.CreateInstance(t);
            }
    
    就这么写吧?
    
    可是有个问题呀,返回值是object类型的,clsid对应的类里面的方法属性不是没法用了吗</pre>
    
    追答
    
    <pre accuse="aRA" style="margin: 0px; padding: 0px; font-family: &quot;PingFang SC&quot;, &quot;Lantinghei SC&quot;, &quot;Microsoft YaHei&quot;, arial, 宋体, sans-serif, tahoma; white-space: pre-wrap; word-wrap: break-word;">YourActiveClass myActive = Activator.CreateInstance(t) as YourActiveClass ;
    if (null == myActive)
    {
        throw exception;
    }
    YourActiveClass 是你这个Guid对应的类型</pre>
    
    

    相关文章

      网友评论

          本文标题:solidowrks二次开发C#--solidworks预览

          本文链接:https://www.haomeiwen.com/subject/rbqxnftx.html