Public Function AutoFilter(Ao,Bo,At,Bt,Xt,A,B,S,Nc,Hc(),Dc()) z = 0: dz = Bo / 2 L = L & AutoBox(-Ao / 2, -Bo/2, z, Ao, Bo, dz) z = z + dz L = L & AutoBox(-At / 2, -Bt/2, z, At, Bt, Xt) z = z + Xt L = L & AutoStruc(z, A, B, S, Nc, Hc, Dc) L = L & AutoBox(-At / 2, -Bt/2, z, At, Bt, Xt) z = z + Xt L = L & AutoBox(-Ao / 2, -Bo/2, z, Ao, Bo, dz) z = z + dz L = L & AutoUnite() AutoFilter=L End Function Function AutoStruc(z, A, B, S, N, H(), D()) L="" For i = 0 To N L = L & AutoBox(-A / 2, -B/2, z, A, B, D(i) + S) z = z + D(i) L = L & AutoBox(-A / 2, -(B/2 + H(i)), z, A, 2 * (B/2 + H(i)), S) z = z + S Next L = L & AutoBox(-A / 2, -B/2, z, A, B, D(0)) z = z + D(0) AutoStruc = L End Function Function AutoBox(x0, y0, z0, dx, dy, dz) fm = 4 br = Chr(13) + Chr(10) L = "" If dx = 0 Then AutoBox = "": Exit Function If dy = 0 Then AutoBox = "": Exit Function If dz = 0 Then AutoBox = "": Exit Function L = L & "box" & br L = L & FormatNumber(x0, fm) & "," & FormatNumber(y0, fm) + "," + FormatNumber(z0, fm) + br L = L + FormatNumber(x0 + dx, fm) & "," & FormatNumber(y0 + dy, fm) & "," & FormatNumber(z0 + dz, fm) & br AutoBox = L End Function Function AutoUnite() br = Chr(13) & Chr(10) L = "union" & br L = L & "all" & br & br AutoUnite = L End Function Function HFBox(ind, x0, y0, z0, dx, dy, dz) br = Chr(13) & Chr(10) HFBox = "" If dx = 0 Or dy = 0 Or dz = 0 Then Exit Function st = Chr(34) & "obj" & ind & Chr(34) HFBox = "Box [" & FormatNumber(x0, 4) & "," & FormatNumber(y0, 4) & "," & FormatNumber(z0, 4) & "]" HFBox = HFBox & " " & FormatNumber(dx, 4) & " "&FormatNumber(dy, 4) & " "&FormatNumber(dz, 4) & " " & st & br ind = ind + 1 End Function Public Function HFFilter(ind,Ao,Bo,At,Bt,Xt,A,B,S,Nc,Hc(),Dc()) z = 0: dz = Bo / 2 L = L & HFBox(ind,-Ao / 2, -Bo/2, z, Ao, Bo, dz) z = z + dz L = L & HFBox(ind,-At / 2, -Bt/2, z, At, Bt, Xt) z = z + Xt L = L & HFStruc(ind,z, A, B, S, Nc, Hc, Dc) L = L & HFBox(ind,-At / 2, -Bt/2, z, At, Bt, Xt) z = z + Xt L = L & HFBox(ind,-Ao / 2, -Bo/2, z, Ao, Bo, dz) z = z + dz L = L & HFUnite(ind) HFFilter=L End Function Function HFStruc(ind,z, A, B, S, N, H(), D()) L="" For i = 0 To N L = L & HFBox(ind,-A / 2, -B/2, z, A, B, D(i) + S) z = z + D(i) L = L & HFBox(ind,-A / 2, -(B/2 + H(i)), z, A, 2 * (B/2 + H(i)), S) z = z + S Next L = L & HFBox(ind,-A / 2, -B/2, z, A, B, D(0)) z = z + D(0) HFStruc = L End Function Function HFUnite(ind) br = Chr(13) & Chr(10) L=L&"FitAllViews"&br&"Unite { " for i=10 to ind-1 st = Chr(34) & "obj" & i & Chr(34) L=L&" "&st next HFUnite = L&" }" End Function