问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB.Net读取AutoCAD图纸

发布网友 发布时间:2022-05-01 12:15

我来回答

3个回答

热心网友 时间:2023-10-11 13:55

如果可以的话请把分给我

  以下是cad2007版的,引用autocad 2007 type library 和autocad/objectdbx common 17如果是04或者版本更低的只要引用autocad 2007 type library,代码的话大同小异,思路是一样的

 

  

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        On Error Resume Next
        Dim acadapp As Autodesk.AutoCAD.Interop.AcadApplication

        acadapp = GetObject(vbNullString, "autoCAD.application")
        Dim acaddoc As Autodesk.AutoCAD.Interop.AcadDocument
        acaddoc = acadapp.ActiveDocument
        Dim Ms As Autodesk.AutoCAD.Interop.Common.AcadModelSpace
        Ms = acaddoc.ModelSpace
        Dim acadObjectI As Autodesk.AutoCAD.Interop.Common.AcadObject
        Dim Linei As Autodesk.AutoCAD.Interop.Common.AcadLine
        Dim Circlei As Autodesk.AutoCAD.Interop.Common.AcadCircle
        Dim Polylinei As Autodesk.AutoCAD.Interop.Common.AcadPolyline
        Dim pt As Autodesk.AutoCAD.Interop.Common.AcadPoint

        For Each acadObjectI In Ms
            Debug.Print(acadObjectI.ObjectName)
            Select Case acadObjectI.ObjectName
                Case "AcDbLine"
                    Linei = acadObjectI
                    Debug.Print("X =" & Linei.StartPoint(0).ToString)
                    Debug.Print("Y =" & Linei.StartPoint(1).ToString)
                Case ""
                Case ""

            End Select

        Next


    End Sub

热心网友 时间:2023-10-11 13:55

我只能用VBA,不知道与VB.NET有多少相通之处,VBA实现你所说的功能是并不难。
我给个VBA示例吧
Public Sub TEST()
'这是一段vba程序
'在屏上框选图元,它会自动过滤,只选直线和圆
'然后依次弹出消息框,给出示例信息

'本例经过测试通过,你可以在autocad的-工具-宏-Visual Basic编辑器 粘上这段代码,观察运行
'但在2010以上版本,可能需要安装VBA模块
'
Dim a As AcadSelectionSet
'定义选择集 注意vba里用的thisdrawing,在vb.net要替换成指向活动文档的语句
Set a = ThisDrawing.SelectionSets.Add("gddfg")
Dim daty(3) As Integer
Dim dav(3) As Variant
Dim p1 As Variant
Dim p2 As Variant
Dim ent As AcadEntity
'设定过滤条件
daty(0) = -4
daty(1) = 0
daty(2) = 0
daty(3) = -4
dav(0) = "<OR"
dav(1) = "Line"
dav(2) = "Circle"
dav(3) = "OR>"
a.SelectOnScreen daty, dav '在屏上选择
'遍历选择集,弹出消息
For Each ent In a
If ent.ObjectName = "AcDbLine" Then
p1 = ent.StartPoint
p2 = ent.EndPoint
MsgBox "这是一条线,起点坐标X:" & Round(p1(0), 2) & " Y:" & Round(p1(1), 2) & " 终点坐标X:" & Round(p2(0), 2) & " Y:" & Round(p2(1), 2)
Else
p1 = ent.Center
MsgBox "这是一个圆,圆心坐标X:" & Round(p1(0), 2) & " Y:" & Round(p1(1), 2) & " 半径:" & Round(ent.Radius, 2)

End If
Next ent
'删除不用的选择集
a.Delete
End Sub追问谢谢你的回答!VBA的研究过了。因为这功能是我整个系统里面的一个模块功能之一。所以希望能够使用完全的vb.net代码。谢谢!

热心网友 时间:2023-10-11 13:56

追问谢谢你的回答!vb.net 和vb6的差别可大了去了。我是从vb6转到vb.net的。因为这功能是我整个系统里面的一个模块功能之一。所以希望能够使用完全的vb.net代码。谢谢!

热心网友 时间:2023-10-11 13:55

如果可以的话请把分给我

  以下是cad2007版的,引用autocad 2007 type library 和autocad/objectdbx common 17如果是04或者版本更低的只要引用autocad 2007 type library,代码的话大同小异,思路是一样的

 

  

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        On Error Resume Next
        Dim acadapp As Autodesk.AutoCAD.Interop.AcadApplication

        acadapp = GetObject(vbNullString, "autoCAD.application")
        Dim acaddoc As Autodesk.AutoCAD.Interop.AcadDocument
        acaddoc = acadapp.ActiveDocument
        Dim Ms As Autodesk.AutoCAD.Interop.Common.AcadModelSpace
        Ms = acaddoc.ModelSpace
        Dim acadObjectI As Autodesk.AutoCAD.Interop.Common.AcadObject
        Dim Linei As Autodesk.AutoCAD.Interop.Common.AcadLine
        Dim Circlei As Autodesk.AutoCAD.Interop.Common.AcadCircle
        Dim Polylinei As Autodesk.AutoCAD.Interop.Common.AcadPolyline
        Dim pt As Autodesk.AutoCAD.Interop.Common.AcadPoint

        For Each acadObjectI In Ms
            Debug.Print(acadObjectI.ObjectName)
            Select Case acadObjectI.ObjectName
                Case "AcDbLine"
                    Linei = acadObjectI
                    Debug.Print("X =" & Linei.StartPoint(0).ToString)
                    Debug.Print("Y =" & Linei.StartPoint(1).ToString)
                Case ""
                Case ""

            End Select

        Next


    End Sub

热心网友 时间:2023-10-11 13:55

我只能用VBA,不知道与VB.NET有多少相通之处,VBA实现你所说的功能是并不难。
我给个VBA示例吧
Public Sub TEST()
'这是一段vba程序
'在屏上框选图元,它会自动过滤,只选直线和圆
'然后依次弹出消息框,给出示例信息

'本例经过测试通过,你可以在autocad的-工具-宏-Visual Basic编辑器 粘上这段代码,观察运行
'但在2010以上版本,可能需要安装VBA模块
'
Dim a As AcadSelectionSet
'定义选择集 注意vba里用的thisdrawing,在vb.net要替换成指向活动文档的语句
Set a = ThisDrawing.SelectionSets.Add("gddfg")
Dim daty(3) As Integer
Dim dav(3) As Variant
Dim p1 As Variant
Dim p2 As Variant
Dim ent As AcadEntity
'设定过滤条件
daty(0) = -4
daty(1) = 0
daty(2) = 0
daty(3) = -4
dav(0) = "<OR"
dav(1) = "Line"
dav(2) = "Circle"
dav(3) = "OR>"
a.SelectOnScreen daty, dav '在屏上选择
'遍历选择集,弹出消息
For Each ent In a
If ent.ObjectName = "AcDbLine" Then
p1 = ent.StartPoint
p2 = ent.EndPoint
MsgBox "这是一条线,起点坐标X:" & Round(p1(0), 2) & " Y:" & Round(p1(1), 2) & " 终点坐标X:" & Round(p2(0), 2) & " Y:" & Round(p2(1), 2)
Else
p1 = ent.Center
MsgBox "这是一个圆,圆心坐标X:" & Round(p1(0), 2) & " Y:" & Round(p1(1), 2) & " 半径:" & Round(ent.Radius, 2)

End If
Next ent
'删除不用的选择集
a.Delete
End Sub追问谢谢你的回答!VBA的研究过了。因为这功能是我整个系统里面的一个模块功能之一。所以希望能够使用完全的vb.net代码。谢谢!

热心网友 时间:2023-10-11 13:56

追问谢谢你的回答!vb.net 和vb6的差别可大了去了。我是从vb6转到vb.net的。因为这功能是我整个系统里面的一个模块功能之一。所以希望能够使用完全的vb.net代码。谢谢!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
雄安 为什么涨 中国对沙特,中国入球了吗 国足vs沙特首发是什么时候? 中国对沙特谁进的球 中国沙特阵容 河北雄县为什么这么火 河北雄县为什么火了 雄县 为什么突然这么火 为什么雄安新区这么火 总是听说好白菜都让猪拱了,到底是什么意思 红头文件插入页码后,红线不见了 关于PPT的动画效果设置 11N台式机笔记本电脑WIFI信号WLAN增强CMCC放大USB无线网卡接收器 怎么联网 现在网上的wlan信号增强接收器,接收cmcc信号上网,靠谱吗?用过的说一下 想买个WLAN增强接收器,如果想把WLan接收器的信号转化到路由器上有办法吗?(路由器上现在都是水 WLAN信号增强接收器,哪些是可以随身带的。 USB放大WIFI信号增强WLAN接收器和普通小型USB 3G上网卡一样吗? wlan高增益接收器是干什么用的 产后怎样就可以瘦腰瘦肚子呢 产后怎么减肥,瘦腰的最快方法? 产后如何瘦腰瘦肚子的最简单的方法是什么?(不吃减肥药) 产后女性如何瘦腰和肚子 苹果6splus怎么给别的手机定位 计算机软考中级什么时候考试?大纲是几号? 建设银行赎楼流程是怎样的?有人说要预约(还要交钱?)然后去银行申请、签字? 建设银行房贷要求有哪些 关于小刀电动车充电器问题? 图片的大小,与分辨率,象素等是不是有什么换算公式 多媒体照片的最低像素公式 淮山泥辅食怎么做好吃 什么软件可以识别CAD的水管 jpeg图片怎么才能用CAD软件读取出来 网上下载的Autocad总是不能用,或用不了几天。请问怎样获取Autocad软件,并可以久使用? 文泰雕刻如何读入CAD软件绘制的图形文件dwg文件? 我的26岁女房客中简薇是谁推下楼的 我的26岁女房客最后男主和谁在一起了 简薇和昭阳为什么分手 我的26岁女房客的主要角色 不明白简薇为什么要在美国跟昭阳分手 简薇结局怎么样 我的26岁女房客简薇为什么分手 简薇为什么割腕自杀 《我的26岁女房客》看到523章,马上要考试了,跳着看了结局看完很伤感啊。能讲下之间的内容吗越多越 26岁女房客米彩为什么买老房子? 《天空的城1》epub下载在线阅读全文,求百度网盘云资源 广州简薇服饰有限公司怎么样? 26岁女房客简薇为什么分手 我的26岁女房客含义 小说我的26岁女房客 简薇在美国到底发生了什么?还有她和向晨是怎么回事儿?求解惑。 问:&#65532; 20 我的26岁女房客没有解开的谜团。 1.简微在美国为什么与昭阳分手,然后自杀 2.最后