明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1850|回复: 4

请指教VBA中如何提取对象属性

[复制链接]
发表于 2006-4-4 23:27:00 | 显示全部楼层 |阅读模式

高手请指教:

请问一下哪位高手,在vba中怎样得到所选择物体的圆心(假如所选择的物体是圆),我有如下一个程式,就是改色(这个简单),

Public Sub pi()
Dim ssetobj As AcadSelectionSet
Dim icount As Integer
icount = ThisDrawing.SelectionSets.Count
While (icount > 0)
    If ThisDrawing.SelectionSets.Item(icount - 1).Name = "yuan" Then
    ThisDrawing.SelectionSets.Item(icount - 1).Delete
    End If
    icount = icount - 1
    Wend
    Set ssetobj = ThisDrawing.SelectionSets.Add("yuan")
    ThisDrawing.Utility.Prompt "please select object"
    ssetobj.SelectOnScreen
  Dim i As Integer
  Dim selobj As AcadEntity

  For i = 0 To ssetobj.Count - 1
      Set selobj = ssetobj.Item(i)
      If selobj.ObjectName = "AcDbCircle" Then

     selobj.color = acBlue
     MsgBox nam

End If
      Next
     
End Sub

现在请问一下高手,我怎么样才可以得到这样圆心的坐标

因为不可以象这样写

dim centerpt(0 to 2) as double

centerpt=selobj.center  (因为这里的selobj没有center中心这样属性)

请高手指教,用怎样的方法才可以得到所选物体的圆心再赋给一变量

因为我想用这个圆心来画别的东本,而visual Lisp 中则有一个这样的

函数 Val-get-center,现在请教高手在vba里可以用什么方法

多谢!

发表于 2006-4-5 19:15:00 | 显示全部楼层

dim centerpt

centerpt=selobj.center 

发表于 2006-4-6 15:35:00 | 显示全部楼层

yuangw1234 ,你说的不对,不是没有这样的属性,而是你提这个属性的方法不对,版主的方法最简单,这样也可以

            Dim centerpt(2) As Double
            Dim value
            j = 0
            For Each value In selobj.Center
                centerpt(j) = value
                j = j + 1
            Next

 楼主| 发表于 2006-4-6 22:28:00 | 显示全部楼层
多谢xinghesnak
 楼主| 发表于 2006-4-9 23:00:00 | 显示全部楼层
请问假如选择的是一个块(由圆组成),这种方法还管用吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 04:16 , Processed in 0.166169 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表