|
发表于 2007-12-20 18:52:00
|
显示全部楼层
'给定点p1,p2,p3
Dim p1(0 To 2) As Double
Dim p2(0 To 2) As Double
Dim p3(0 To 2) As Double
''''''''''''''''''''''''''''
''''''''''''''''''''''''''''
Dim vx(0 To 2) As Double
Dim vy(0 To 2) As Double
Dim vz(0 To 2) As Double
Dim x(0 To 2) As Double
Dim y(0 To 2) As Double
Dim z(0 To 2) As Double
Dim i As Integer
'''
'矢量 vx , vy由点p1,p2,p3决定
for i = 0 To 2
vx(i)=p2(i)-p1(i)
vy(i)=p3(i)-p1(i)
Next
'UCS坐标系的x轴
for i = 0 To 2
x(i)=vx(i)
Next
'vz = vx X vy (矢量的外积运算)
vz(0) = vx(1) * vy(2) - vx(2) * vy(1)
vz(1) = vx(2) * vy(0) - vx(0) * vy(2)
vz(2) = vx(0) * vy(1) - vx(1) * vy(0)
'UCS坐标系的z轴
for i = 0 To 2
z(i)=vz(i)
Next
'UCS坐标系的y轴
y(0) = z(1) * x(2) - z(2) * x(1)
y(1) = z(2) * x(0) - z(0) * x(2)
y(2) = z(0) * x(1) - z(1) * x(0)
'则,UCS坐标系
Dim ucsObj As AcadUCS
Dim ucsx(0 To 2) As Double
Dim ucsy(0 To 2) As Double
For i = 0 To 2
ucsx(i) = p1(i) + x(i)
ucsy(i) = p1(i) + y(i)
Next
Set ucsObj = ThisDrawing.UserCoordinateSystems.Add(p1, ucsx, ucsy, "UCSName")
|
|