C# SolidWorks二次开发-工程图-更换工程图图纸格式/模板

这两天有朋友提问,怎么更换工程图模板。
正好晚上还能挤点时间,就来写一篇文件解答一下。
首先,更换工程图模板,你需要知道手动怎么修改。
如下图,我这个没有模板,只有个纸张大小。
watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 20,color FFFFFF,t 70,g se,x 16
对着视图,右键属性。
1e651b04b02c451b9ef5d09cd8343118
可以看到我这里没有选择图纸格式:
watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 18,color FFFFFF,t 70,g se,x 16
下面就录制一下宏,先看有没有对应的操作可以记录:
录制的时候我选择了一下标准的a4
watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 18,color FFFFFF,t 70,g se,x 16
应该更改之后 :
watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 17,color FFFFFF,t 70,g se,x 16
发现有了变化,我们看下录到的代码:
watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 20,color FFFFFF,t 70,g se,x 16
更是够简单,里面参数有个a4的值 ,说明我们录到了这个方法,关键字就是SetupSheet5

打开我们的神器:
watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 17,color FFFFFF,t 70,g se,x 16

然后进入最新版本的SetupSheet6:
9ad425e0f1244b7d8321bbf99871a568
watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 10,color FFFFFF,t 70,g se,x 16
watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 20,color FFFFFF,t 70,g se,x 16
从上面可以看出来,这个是设置图纸的一些参数,包括图纸格式,比例,上下左右的间距,第一视角或者第三视角。

而且下面还有例子:我就不去看了。
b65801e0043c4ff48264bc7393be50b4
我们就学习一下在C#中写下这个方法:

watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 20,color FFFFFF,t 70,g se,x 16

        private void btnModifyTemplate_Click(object sender, EventArgs e)
        {
            //先打开Measure.slddrw
            SldWorks swApp = Utility.ConnectToSolidWorks();

            if (swApp != null)
            {
                ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc; //当前文档

                var swDrawing = (DrawingDoc)swModel; //转换成工程图对象

                var res=  swDrawing.SetupSheet6("Sheet1", (int)swDwgPaperSizes_e.swDwgPaperA3size,
                    (int)swDwgTemplates_e.swDwgTemplateA3size, 1, 5, true, "a3 - din.slddrt", 0, 0, "默认", false, 0, 0, 0, 0, 0, 0);
                if (res)
                {
                    MessageBox.Show("更换成功。");
                }

            }
        }

执行完这个代码:
watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 20,color FFFFFF,t 70,g se,x 16
尺寸确实变了,这个我就不细研究了,也许上面有参数有些不对。

上面代码中参数的1 和 5 就是图纸的比例:
ee81c35b7c2740b6bb2416e1c73eef8a
当然,如果 不希望改其它参数,就需要把这些参数设置和之前一样的值 。
可以用过下面这个方法来获取当前图纸的一些参数:
watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 16,color FFFFFF,t 70,g se,x 16

当前如果是其它的,比如公司的模板什么的,可以指定一个完整的路径。

                var res = swDrawing.SetupSheet6("Sheet1", (int)swDwgPaperSizes_e.swDwgPaperA4size,
                    (int)swDwgTemplates_e.swDwgTemplateA4size, 1, 5, true, @"E:\01_Work\22_Gitee\CSharpAndSolidWorks\CSharpAndSolidWorks\TemplateModel\sheetformat\a4 - gb.slddrt", 0, 0, "默认", true, 0, 0, 0, 0, 0, 0);

watermark,type d3F5LXplbmhlaQ,shadow 50,text Q1NETiBAUGFpbmUgWmVuZw==,size 20,color FFFFFF,t 70,g se,x 16
好了,今天就写这么多了,马上就要过年了,年前不一定有时间再写。提前祝大家过个好年,希望不要被隔离在家。
1ebafb86310b4f10bc8c893ec15d7ad2
源代码: https://gitee.com/painezeng/CSharpAndSolidWorks
第一次使用可以看下下面这个视频 :3577c689002d4ad1a6127f7f209f3352

posted @
2022-01-15 20:43 
painezeng  阅读(
0)  评论(
0
编辑 
收藏 
举报  
来源