C# Solidworks二次开发------CAD图纸的插入与读取

一、CAD图纸读取

对于图纸的读取,看我们是想读取哪些内容,比如简单的圆、圆弧、直线,还是整个图纸,在我使用的过程中,我就只读取了圆等简单图形,其他的需要大家去探索了,针对数据的读取,我有两种思路

1.使用CAD自带的读取功能

(1)打开我们需要读取的图纸

(2)插入----提取数据(CAD2017版本)

(3)一直点下一步就行

(4)勾选自己需要的内容

(5)检查一下内容(都是以图纸原点为参考坐标)

(6)选择生成Excel

(7)效果如下

2.使用C#中的netDxf程序包读取

(1)打开VS,点开引用---管理NuGet程序包

(2)搜索netDxf,安装这个包即可

(3)安装成功后

(4)引入命名空间

using netDxf;
using netDxf.Entities;
using netDxf.Header;
using netDxf.Collections;

(5)读取图纸,读取的图纸要把DWG格式保存为DXF格式(重要),代码如下


//dxf文件读取
 DxfDocument dxf = DxfDocument.Load("路径");//读取dxf文件
 IEnumerable<Circle> circles = dxf.Entities.Circles;
circleCount = circles.Count();

//圆形统计
for (int i = 0; i < circleCount; i++)
{
        Circle circle = circles.ElementAt(i);
        X[i] = circle.Center.X;
        Y[i] = circle.Center.Y;
        R[i] = circle.Radius;
}

二、CAD图纸插入

        将CAD图纸插入不难,如果要做一些拉伸的话,就需要一些基本处理,因为能拉伸的图形有限制这个需要注意一下,下面的代码我融合了图纸的插入与拉伸

 public void Dxf_Insert()
{
//声明领导
ISldWorks swApp =Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application")) as SldWorks;

//插入相关设置
ImportDxfDwgData importData = (ImportDxfDwgData)swApp.GetImportFileData("路径");
importData.set_LengthUnit("", (int)swLengthUnit_e.swMM);//设置插入单位
importData.SetPosition("", (int)swDwgImportEntitiesPositioning_e.swDwgEntitiesCentered, 0, 0);//插入到中间位置
importData.ImportMethod[""] (int)swImportDxfDwg_ImportMethod_e.swImportDxfDwg_ImportToPartSketch;
int longerrors = 0;
var NewDoc = swApp.LoadFile4(path, "", importData, ref longerrors);

//我进行了拉伸
//部分草图选择(因为我的图纸内容挺多的,我只选择了部分进行拉伸)
ModelDoc2 Part = swApp.ActiveDoc;//激活ModelDoc2,激活需要上一层激活
 ((SelectionMgr)(Part.SelectionManager)).EnableContourSelection = true;
Part.Extension.SelectByID2("Model", "SKETCHREGION", -0.21, -0.21, 0, true, 4, null, 0);
 
//textBox2.Text输入拉伸的数据
Part.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, Convert.ToDouble(textBox2.Text) / 1000, 0.02, false, false, false, false, 1.74532925199433E-02, 1.74532925199433E-02, false, false, false, false, true, true, true, 0, 0, false);

//将模型保存
Part.SaveAs3("路径", 0, 1);
}

效果如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值