rprt.net
当前位置:首页 >> 在VBA 如何获取AUTOCAD中图块的位置坐标 >>

在VBA 如何获取AUTOCAD中图块的位置坐标

VBA写的,试试,换成VB增加Dim AcadApp As AcadApplicationSet AcadApp = GetObject(, "AutoCad.Application")把Thisdrawing改成AcadApp.ActiveDocument就行了将前十个图块的的名字,坐标给出来,不定数量手要点软,呵呵Sub

在VBA中,可以使用如下语句获得坐标位置:Private Sub GetBlocksCoord() Dim BlockObj As AcadBlock For Each BlockObj In ThisDrawing.Blocks '在当前图形中查找所有块 Debug.Print BlockObj.Origin(0), BlockObj.Origin(1) '获取坐标 Next Set BlockObj = Nothing '销毁变量 End Sub把这段命令保存为VBA文件,在菜单工具-->Autolisp-->加载该文件.

用lisp比较方便.

用COM组件,或者又称为ActiveXBlockRef的InsertionPoint 属性就是插入点的坐标

如果类型为PolylwLine(多段线),那么它有一个属性:Coordinates,里面是多段线的所有坐标点,至于怎么提取,不用我说了吧

在CAD中直接输入LIST后再在图中选择你要知道的块,再确定就显示一个图框,你需要的信息就都出现了!

1.要改两个部份,第一步,改首行的private 为 public2.ss_dim.Select acSelectionSetAll, , , dxf_code, dxf_value 改正: ss_dim.SelectOnScreen dxf_code, dxf_value这样就是输出选中对象了.----------------------------Public Sub

1. 应当是这样说,如果值为0【在autolisp里面,值是(getvar "WORLDUCS")】,就说明UCS与WCS坐标不同.2. 在autolisp里面,可以使用函数【trans】来转换坐标系.

使用while函数来循环e69da5e887aa7a686964616f31333363353766,下面是一个计算交点的autolisp代码:(defun c:tes ( / &k1 &kw1 &ss1 &ss2 i x) (setvar "cmdecho" 0) (setvar "blipmode" 0) (if (null vlax-dump-object) (vl-load-com) ) (princ

dim obj1 as AcadTextdim a(2),b(2) as doubledim b as integerdim d as stringobj1=..with obj1a=.InsectionPointb=.TextAlignmentPointc=.Alignmentd=.TextStringend with大体应该这么写吧

skcj.net | bnds.net | gmcy.net | ceqiong.net | dzrs.net | 网站首页 | 网站地图
All rights reserved Powered by www.rprt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com