lvidx140 (19) =============== * parsurf.bb.min.z goes 5mm lower * flat dinner plate with hole in middle * g4poly misses some middle cylinders and the very bottom one :: 19 5 LsoOflTnk0xc17d928 lvidx 140 nsp 315 union intersection cylinder nds[ 2] 4606 6266 . 5 LsoOflTnk0xc17d928 lvidx 140 nsp 315 amn ( -920.000 -920.000 -10.000) parsurf.bb.min.z goes lower bmn ( -920.042 -920.000 -5.000) dmn ( 0.042 0.000 -5.000) amx ( 920.000 920.000 170.000) bmx ( 920.000 920.031 170.057) dmx ( 0.000 -0.031 -0.057) Viz ----- :: op --dlv140 g4poly is two disconnected plates with different sized holes op --dlv140 --gltf 1 raytrace joins the plates tbool ------- :: 078 # generated by tboolean.py : 20170706-1446 79 # opticks-;opticks-tbool 140 80 # opticks-;opticks-tbool-vi 140 81 82 83 a = CSG("cylinder", param = [0.000,0.000,0.000,920.000],param1 = [-5.000,5.000,0.000,0.000]) 84 b = CSG("cylinder", param = [0.000,0.000,0.000,50.000],param1 = [-5.050,5.050,0.000,0.000],complement = True) 85 ab = CSG("intersection", left=a, right=b) 86 87 c = CSG("cylinder", param = [0.000,0.000,0.000,112.500],param1 = [-2.500,2.500,0.000,0.000]) 88 d = CSG("cylinder", param = [0.000,0.000,0.000,50.000],param1 = [-2.525,2.525,0.000,0.000],complement = True) 89 cd = CSG("intersection", left=c, right=d) 90 cd.transform = [[1.000,0.000,0.000,0.000],[0.000,1.000,0.000,0.000],[0.000,0.000,1.000,0.000],[0.000,0.000,-7.500,1.000]] 91 92 abcd = CSG("union", left=ab, right=cd) 93 94 e = CSG("cylinder", param = [0.000,0.000,0.000,920.000],param1 = [-77.500,77.500,0.000,0.000]) 95 f = CSG("cylinder", param = [0.000,0.000,0.000,910.000],param1 = [-78.275,78.275,0.000,0.000],complement = True) 96 ef = CSG("intersection", left=e, right=f) 97 ef.transform = [[1.000,0.000,0.000,0.000],[0.000,1.000,0.000,0.000],[0.000,0.000,1.000,0.000],[0.000,0.000,82.500,1.000]] 98 99 g = CSG("cylinder", param = [0.000,0.000,0.000,920.000],param1 = [-5.000,5.000,0.000,0.000]) 100 h = CSG("cylinder", param = [0.000,0.000,0.000,660.000],param1 = [-5.050,5.050,0.000,0.000],complement = True) 101 gh = CSG("intersection", left=g, right=h) 102 gh.transform = [[1.000,0.000,0.000,0.000],[0.000,1.000,0.000,0.000],[0.000,0.000,1.000,0.000],[0.000,0.000,165.000,1.000]] 103 104 efgh = CSG("union", left=ef, right=gh) 105 106 abcdefgh = CSG("union", left=abcd, right=efgh)