gmyroup 发表于 2007-9-26 17:47:08

正在填充 ACAD 对象数组...我做错了什么?

我尝试使用以下代码提取构成ACAD图案填充对象外边界的实体:
Dim acadents(1000)As acad entity
For TL = 0 To a chatch。NumberOfLoops - 1。GetLoopAt tl,acadents
下一步
当我运行代码并查看应该在acadents数组中的实体时...没有。
我做错了什么?杰瑞
**** Hidden Message *****

Atook 发表于 2007-9-26 18:23:03

首先,看起来您可以多次分配整个数组(tl)。
我会考虑将getLoop与临时数组一起使用,然后逐步遍历临时数组以一次分配一个acadents。这样您就可以将下一个temparray(tl+1)附加到您刚刚放入acadents的数据的末尾。
这有意义吗?

gmyroup 发表于 2007-9-26 18:57:22

您好
感谢您回复我。理论上,我需要为图案填充边界中的每个循环用实体填充数组,因此tl=0到numberofloops-1。如果我可以重新划分数组,那将很好,但不幸的是,我无法知道每个循环中有多少实体
当该方法要求循环编号(我确实知道)和对象数组时,我不确定ACAD在寻找什么,对象数组是返回循环中实体的载体,因此是ACADEnts数组
杰瑞

Bryco 发表于 2007-9-29 10:46:02

循环编号可以访问实体的变体,
例如,作为单个实体的圆或构成矩形的4条线,后者是每个循环需要变体的原因。
Sub Hatch()
    Dim h As AcadHatch
    Dim i As Integer, Cnt As Integer
    Dim j As Integer, Clr As Integer
    Dim Ents(), oLoops
    Set h = EntSel
    Cnt = h.numberOfLoops
    ReDim Ents(Cnt)
    For i = 0 To Cnt - 1
      h.GetLoopAt i, oLoops
      Ents(i) = oLoops
    Next i
   
    For i = 0 To Cnt - 1
      oLoops = Ents(i)
      For j = 0 To UBound(oLoops)
            oLoops(j).Color = Clr
            Clr = Clr + 1
      Next j
    Next i
End Sub

gmyroup 发表于 2007-9-30 17:50:59

非常感谢你,努奇…我会尝试一下,如果需要的话再给你回复。
页: [1]
查看完整版本: 正在填充 ACAD 对象数组...我做错了什么?