Vielleicht kann dir schon eine fertige Lösung helfen?
siehe
www.cadpart.com oder:
'---------------------------------
With MyAxis
If .Ax_DX_X = 1 Then X2 = (X1 - .Ax_X): GoTo Next1
If .Ax_DX_X = -1 Then X2 = .Ax_X - X1: GoTo Next1
Nx = .Ax_DZ_Y * .Ax_DY_Z - .Ax_DZ_Z * .Ax_DY_Y
Ny = .Ax_DZ_Z * .Ax_DY_X - .Ax_DZ_X * .Ax_DY_Z
Nz = .Ax_DZ_X * .Ax_DY_Y - .Ax_DZ_Y * .Ax_DY_X
N = Sqr(Nx ^ 2 + Ny ^ 2 + Nz ^ 2)
NG = Nx * (X1 - .Ax_X)
NG = NG + Ny * (Y1 - .Ax_Y)
NG = NG + Nz * (Z1 - .Ax_Z)
X2 = -NG / N
Next1:
X2 = Round(X2, 3)
'---------------------------------------------------
If .Ax_DY_Y = 1 Then Y2 = (Y1 - .Ax_Y): GoTo Next2
If .Ax_DY_Y = -1 Then Y2 = .Ax_Y - Y1: GoTo Next2
Nx = .Ax_DX_Y * .Ax_DZ_Z - .Ax_DX_Z * .Ax_DZ_Y
Ny = .Ax_DX_Z * .Ax_DZ_X - .Ax_DX_X * .Ax_DZ_Z
Nz = .Ax_DX_X * .Ax_DZ_Y - .Ax_DX_Y * .Ax_DZ_X
N = Sqr(Nx ^ 2 + Ny ^ 2 + Nz ^ 2)
NG = Nx * (X1 - .Ax_X)
NG = NG + Ny * (Y1 - .Ax_Y)
NG = NG + Nz * (Z1 - .Ax_Z)
Y2 = -NG / N
Next2:
Y2 = Round(Y2, 3)
'---------------------------------------------------
If .Ax_DZ_Z = 1 Then Z2 = (Z1 - .Ax_Z): GoTo Next3
If .Ax_DZ_Z = -1 Then Z2 = .Ax_Z - Z1: GoTo Next3
Nx = .Ax_DX_Y * .Ax_DY_Z - .Ax_DX_Z * .Ax_DY_Y
Ny = .Ax_DX_Z * .Ax_DY_X - .Ax_DX_X * .Ax_DY_Z
Nz = .Ax_DX_X * .Ax_DY_Y - .Ax_DX_Y * .Ax_DY_X
N = Sqr(Nx ^ 2 + Ny ^ 2 + Nz ^ 2)
NG = Nx * (X1 - .Ax_X)
NG = NG + Ny * (Y1 - .Ax_Y)
NG = NG + Nz * (Z1 - .Ax_Z)
Z2 = NG / N
'
Next3:
If Myhole.AnchorMode = 1 Then Z2 = Z2 + Myhole.Head_Depth
Z2 = Round(Z2, 3)
'
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP