如何在cad中提取所有块的xyz的详细说明

小编cadzj 10月 8, 202116:51:13
评论
532 8275字阅读27分35秒

如果某个文本或者之类的东西,被恶意的破坏,做成了块,那么我们应该怎么还原呢?

首先,复制所有需要转换的块到一个新的dwg文件,注意:不能存在文字,点,等等!

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

双击左边栏的"ThisDrawing",然后出现代码输入框,复制下面的代码到框中,然后F5运行D盘就有结果了。

如何在cad中提取所有块的xyz的详细说明

 

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
   
    Set sel1 = Nothing
End Sub

小编cadzj
  • 本文由 发表于 10月 8, 202116:51:13
  • 转载请务必保留本文链接:http://wg678.cn/102093.html
怎样使用夹点编辑移动多个对象 CAD安装问题教程

怎样使用夹点编辑移动多个对象

在cad中,平时选中多个对象后,利用夹点编辑正移动一个对象,怎样能一次移动多个对象?   以上图为例,选中直线和圆之后,按住shift键,依次点击圆的中心夹点、直线的中心夹点,松开shift...
AutoCAD如何确定点的位置 CAD安装问题教程

AutoCAD如何确定点的位置

CAD中,经常需要确定点的位置,比如绘制圆需要确定圆心点位置,绘制直线需要确定两个端点的位置了,下面介绍4种确定点位置的方法 点的四种输入方法: 1、 拾取点:拾取点的主要方法。执行命令提示输入点时,...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: