[jacksonharp]小2当家 12:25:21
请问大家有什么方法把所化的直线当成一个数组?
比如:
Dim lineObjPc(1 To 6) As AcadLine
For i=1 to 6
Set lineObjPc = AcadApp.ActiveDocument.ModelSpace.AddLine(Pc(i),  c(i - 1))
Next i
[jacksonharp]小2当家 12:26:16
但我这种代码实现不了,会提示错误,请问怎么写才能达到这种功能?
一缕阳光 12:27:47
数组概念不清
测≮沙漠≯ 12:27:49
Set lineObjPc (i)
一缕阳光 12:28:25
Dim lineObjPc(0 To 6) As AcadLine
For i=0 to 6
Set lineObjPc(i) = AcadApp.ActiveDocument.ModelSpace.AddLine(Pc(i),  c(i - 1))
Next i
一缕阳光 12:29:10
数组最好从0开始
[jacksonharp]小2当家 12:29:20
不行呀
[qqimg]201309/{66E37C72-2CDA-A6AB-0320-13A1D80A67E0}.jpg[/qqimg]
[qqimg]201309/{1FD3F284-ABE1-1365-92E7-5B42837FA2A2}.jpg[/qqimg]
一缕阳光 12:30:05
Dim lineObjPc(0 To 5) As AcadLine
For i=0 to 5
Set lineObjPc(i) = AcadApp.ActiveDocument.ModelSpace.AddLine(Pc(i+1),  c(i))
Next i
一缕阳光 12:30:39
.AddLine(Pc(i+1),  c(i))
估计这也错的
pc是什么东东
一缕阳光 12:31:38
AddLine(P1,  2)
[jacksonharp]小2当家 12:32:03
这个我在前面定义了
一缕阳光 12:32:23
需要这么样 p1 p2分别为3数组
3元素数组
[jacksonharp]小2当家 12:33:37
Point(0) = centerPoint(0) + Val(circle_radius.Text) * Cos(i * 2 * 3.1415926 / n_Line)
  oint(1) = centerPoint(1) + Val(circle_radius.Text) * Sin(i * 2 * 3.1415926 / n_Line)
  oint(2) = 0
  c(i) =  oint()
[jacksonharp]小2当家 12:34:20
P(i) 我在前面都已经定义好了
一缕阳光 12:34:23
pc是什么类型
一缕阳光 12:34:56
Pc(i) =  oint()这个也会有问题
[jacksonharp]小2当家 12:36:17
ReDim  c(0 To i) As Variant
变体
[jacksonharp]小2当家 12:37:18
是不是只能
Dim lineObjPcAs AcadLine
而不能定义数组成acadline?
一缕阳光 12:37:41
Pc(i) =  oint() 既然是变体 怎么能直接赋值呢
一缕阳光 12:39:00
变量要尽可能的少用 占内存少
[jacksonharp]小2当家 12:39:17
恩
一缕阳光 12:39:43
没必要 什么图形都设一个变量
[jacksonharp]小2当家 12:39:45
那一般Dim lineObjPc(1 TO 6) As AcadLine
一缕阳光 12:40:08
这个是正确的
Dim lineObjPc(0 TO 5) As AcadLine
这个比较理想
[jacksonharp]小2当家 12:40:54
恩 好,估计是我的Pc(i)出了问题
一缕阳光 12:41:18
ReDim  c(0 To i) As Variant
这个很少用到
一缕阳光 12:42:32
画个直线 只定义2个数组变量就可以了
不管画多少个直线
[jacksonharp]小2当家 12:43:59
我这个好麻烦,是想拿这个判断两图同构之类的算法
一缕阳光 12:48:30
这个都比较简单的
[jacksonharp]小2当家 12:49:07
哎,我还需要多多磨练啊 |