Option Explicit
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
'將CAD的圖形數(shù)據(jù)寫入Excel
Public Sub CadToExcel()
Dim sset As AcadSelectionSet
Dim filterType(0) As Integer, filterData(0) As Variant
On Error Resume Next
Set sset = ThisDrawing.SelectionSets.Add("ToExcel")
If Err.Number <> 0 Then
Err.Clear
Set sset = ThisDrawing.SelectionSets.Item("ToExcel")
sset.Clear
End If
Set xlApp = CreateObject("Excel.Application")
If Err.Number <> 0 Then
Err.Clear
MsgBox "Excel軟件沒有正確打開。", vbOKOnly + 16, "提示:"
Exit Sub
End If
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
filterType(0) = 0
filterData(0) = "line,circle,arc"
sset.SelectOnScreen filterType, filterData
If sset.Count = 0 Then Exit Sub
xlSheet.Range("A1") = "ObjectCount"'寫入標(biāo)題
xlSheet.Range("B1") = sset.Count '寫入數(shù)據(jù)
Dim Obj As AcadEntity, i As Long, varCP As Variant
i = 2
For Each Obj In sset
Select Case Obj.ObjectName
Case "AcDbCircle"
varCP = Obj.Center
xlSheet.Range(("A" & i)) = "AcDbCircle"'寫入對象名
xlSheet.Range(("B" & i)) = Obj.Radius'寫入半徑數(shù)據(jù)
xlSheet.Range(("C" & i)) = varCP(0) & "," & varCP(1) & "," & varCP(2)'寫入圓心坐標(biāo)數(shù)據(jù)
Case "AcDbLine"
xlSheet.Range(("A" & i)) = "AcDbLine"'寫入對象名
varCP = Obj.StartPoint
xlSheet.Range(("B" & i)) = varCP(0) & "," & varCP(1) & "," & varCP(2)'寫入起點(diǎn)坐標(biāo)數(shù)據(jù)
varCP = Obj.EndPoint
xlSheet.Range(("C" & i)) = varCP(0) & "," & varCP(1) & "," & varCP(2)'寫入終點(diǎn)坐標(biāo)數(shù)據(jù)
Case "AcDbArc"
varCP = Obj.Center
xlSheet.Range(("A" & i)) = "AcDbArc"'寫入對象名
xlSheet.Range(("B" & i)) = Obj.Radius'寫入半徑數(shù)據(jù)
xlSheet.Range(("C" & i)) = varCP(0) & "," & varCP(1) & "," & varCP(2)'寫入圓心坐標(biāo)數(shù)據(jù)
xlSheet.Range(("D" & i)) = Obj.StartAngle'寫入起始角數(shù)據(jù)
xlSheet.Range(("E" & i)) = Obj.EndAngle '寫入終止角數(shù)據(jù)
End Select
i = i + 1
Next
xlApp.Visible = True
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
'提取Excel數(shù)據(jù)升成CAD圖形
Public Sub ExcelToCAD()
Dim ObjectCount As Long, strTemp() As String, i As Long, strFileName As String
On Error Resume Next
Set xlApp = CreateObject("Excel.Application")
If Err.Number <> 0 Then
Err.Clear
MsgBox "Excel軟件沒有正確打開。", vbOKOnly + 16, "提示:"
Exit Sub
End If
strFileName = InputBox("輸入保存CAD圖形數(shù)據(jù)的Excel文件.", "打開文件:")
If Dir(strFileName) = "" Then
MsgBox "文件未找到。"
Exit Sub
End If
Set xlBook = xlApp.Workbooks.Open(strFileName)
Set xlSheet = xlBook.Worksheets(1)
Dim dblRadius As Double, dblCenter(2) As Double, j As Integer
ObjectCount = Val(xlSheet.Range("B1"))
For i = 2 To (ObjectCount + 1)
Select Case xlSheet.Range(("A" & i))
Case "AcDbCircle"
dblRadius = xlSheet.Range(("B" & i)) '讀入半徑數(shù)據(jù)
strTemp = Split(xlSheet.Range(("C" & i)), ",")'讀入圓心坐標(biāo)數(shù)據(jù)
For j = 0 To 2: dblCenter(j) = Val(strTemp(j)): Next j#p#分頁標(biāo)題#e#
ThisDrawing.ModelSpace.AddCircle dblCenter, dblRadius
Case "AcDbLine"
Dim dblStartP(2) As Double, dblEndP(2) As Double
strTemp = Split(xlSheet.Range(("B" & i)), ",") '讀入起點(diǎn)坐標(biāo)數(shù)據(jù)
For j = 0 To 2: dblStartP(j) = Val(strTemp(j)): Next j
strTemp = (Split(xlSheet.Range(("C" & i)), ","))'讀入終點(diǎn)坐標(biāo)數(shù)據(jù)
For j = 0 To 2: dblEndP(j) = Val(strTemp(j)): Next j
ThisDrawing.ModelSpace.AddLine dblStartP, dblEndP
Case "AcDbArc"
Dim dblStartAngle As Double, dblEndAngle As Double
dblRadius = Val(xlSheet.Range(("B" & i))) '讀入半徑數(shù)據(jù)
strTemp = Split(xlSheet.Range(("C" & i)), ",")'讀入圓心坐標(biāo)數(shù)據(jù)
For j = 0 To 2: dblCenter(j) = Val(strTemp(j)): Next j
dblStartAngle = Val(xlSheet.Range(("D" & i))) '讀入起始角數(shù)據(jù)
dblEndAngle = Val(xlSheet.Range(("E" & i))) '讀入終止角數(shù)據(jù)
ThisDrawing.ModelSpace.AddArc dblCenter, dblRadius, dblStartAngle, dblEndAngle
End Select
Next i
xlBook.Close
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
相關(guān)文章
- 2021-09-08BIM技術(shù)叢書Revit軟件應(yīng)用系列Autodesk Revit族詳解 [
- 2021-09-08全國專業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試用書 AutoCAD2004
- 2021-09-08EXCEL在工作中的應(yīng)用 制表、數(shù)據(jù)處理及宏應(yīng)用PDF下載
- 2021-08-30從零開始AutoCAD 2014中文版機(jī)械制圖基礎(chǔ)培訓(xùn)教程 [李
- 2021-08-30從零開始AutoCAD 2014中文版建筑制圖基礎(chǔ)培訓(xùn)教程 [朱
- 2021-08-30電氣CAD實(shí)例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風(fēng)暴2:Maya影像實(shí)拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術(shù)設(shè)計(jì)案例教程中文版AutoCAD 建筑設(shè)計(jì)案例
- 2021-08-29環(huán)境藝術(shù)制圖AutoCAD [徐幼光 編著] 2013年P(guān)DF下載
- 2021-08-29機(jī)械A(chǔ)utoCAD 項(xiàng)目教程 第3版 [繆希偉 主編] 2012年P(guān)DF