我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > CAD新聞

如何在cad中提取所有塊的xyz(By Kiseigo)

時間:2009-08-18 19:16:12 來源:

如果某個文本或者之類的東西,被惡意的破壞,做成了塊,那么我們應該怎么還原呢?

首先,復制所有需要轉換的塊到一個新的dwg文件,注意:不能存在文字,點,等等!

進入cad中,cad主界面 "工具" - "宏" - "VB編輯器",以可以Alt + F11 一步到位。

雙擊左邊欄的"ThisDrawing",然后出現代碼輸入框,復制下面的代碼到框中,然后F5運行D盤就有結果了。

作者:Kiseigo 日期:2009.07.21

 


Option Explicit

'功能: 提取cad中所有塊的x,y,z生成文件在"D:vbCm.txt", 如“563865.8,2113507.5,-9”格式
'目前功能有限,沒有時間完善,以后再說。
'如果提示"選擇集已存在",改動"新建一個選擇集"前面的""的內容,如a1改成a2,a2改成a3,直到不再出錯
'保證當前cad中,只有塊參照,沒有其它(點,文字,線)等,否則出錯。

PS:如果不是塊參照,請在“Call sel1.Select(acSelectionSetAll) '全部選中”設置斷點,看到底是什么類型的,改AcadBlockReference成需要的類型就可以了。
Sub allsel()
    Dim sel1 As AcadSelectionSet '定義選擇集對象
    Set sel1 = ThisDrawing.SelectionSets.Add("a16") '新建一個選擇集
    Call sel1.Select(acSelectionSetAll) '全部選中
    sel1.Highlight (True) '顯示選擇的對象
   
    Dim i As Integer
    Dim str As String

    Dim nFileCm As Integer
    nFileCm = FreeFile
    Open "D:vbCm.txt" For Append As #nFileCm
    Dim strLine As String
   
    Dim adBlockRef As AcadBlockReference
    For Each adBlockRef In sel1
        With adBlockRef
            strLine = adBlockRef.InsertionPoint(0) & "," & adBlockRef.InsertionPoint(1) & "," & adBlockRef.InsertionPoint(2) & vbCr
            Print #nFileCm, strLine
        End With
    Next adBlockRef
   
    Close #nFileCm
 #p#分頁標題#e#  
    Set sel1 = Nothing
End Sub