3D wireframe structures
My first results from a script to turn 3D parametric surfaces to wireframe 3D models. This version is limited to a mesh of 18 wires and is for the "Shell" math object. To test with other parametric definitions, you have to modify "Fx", "Fy", "Fz", "u1min", "u1max", "v1min" and "v1max" accordingly.
The main objective is to create plain weave wireframes...
Stay tuned :-)
MathMod script:
{
"Param3D": {
"Name": [
"Wireframe_Shell"
],
"Description": [
"Wireframe Shell by Abderrahman Taha 07/01/2018"
],
"Component": [
"Wireframe_Shell_00",
"Wireframe_Shell_01",
"Wireframe_Shell_02",
"Wireframe_Shell_03",
"Wireframe_Shell_04",
"Wireframe_Shell_05",
"Wireframe_Shell_06",
"Wireframe_Shell_07",
"Wireframe_Shell_08",
"Wireframe_Shell_09",
"Wireframe_Shell_10",
"Wireframe_Shell_11",
"Wireframe_Shell_12",
"Wireframe_Shell_13",
"Wireframe_Shell_14",
"Wireframe_Shell_15",
"Wireframe_Shell_16",
"Wireframe_Shell_17"
],
"Const": [
"u1min=0",
"u1max=pi",
"v1min=-pi/4",
"v1max=5*pi/2",
"M=8",
"N=8",
"H=0.0",
"r0=8",
"du=0.0001",
"dv=0.0001",
"umin=0",
"umax=2*pi",
"vmin=0",
"vmax=2*pi",
"Gu=(u1max-u1min)/N",
"Gv=(v1max-v1min)/M"
],
"Funct": [
"Fx=1.2^v*(sin(u)^2*sin(v))",
"Fy=1.2^v*(sin(u)^2*cos(v))",
"Fz=1.2^v*(sin(u)cos(u))",
"DFxu=((Fx(u,v,t)-Fx(u+du,v,t))/du)",
"DFxv=((Fx(u,v,t)-Fx(u,v+dv,t))/dv)",
"DFyu=((Fy(u,v,t)-Fy(u+du,v,t))/du)",
"DFyv=((Fy(u,v,t)-Fy(u,v+dv,t))/dv)",
"DFzu=((Fz(u,v,t)-Fz(u+du,v,t))/du)",
"DFzv=((Fz(u,v,t)-Fz(u,v+dv,t))/dv)",
"n1=(DFyu(u,v,t)*DFzv(u,v,t)-DFzu(u,v,t)*DFyv(u,v,t))",
"n2=(DFzu(u,v,t)*DFxv(u,v,t)-DFxu(u,v,t)*DFzv(u,v,t))",
"n3=(DFxu(u,v,t)*DFyv(u,v,t)-DFyu(u,v,t)*DFxv(u,v,t))",
"R=(u)/sqrt(u^2+v^2+t^2)",
"Thickness=H*sin(N*pi(v-v1min)/(v1max-v1min)+int((M*(u-u1min)/(u1max-u1min)+0.5)%M)(pi)+pi/2)",
"Thickness2=H*sin(N*pi(u-u1min)/(u1max-u1min)+int((M*(v-v1min)/(v1max-v1min)+0.5)%M)*(pi))",
"Gx=Fx(u,v,t)+Thickness(u,v,t)*R(n1(u,v,t),n2(u,v,t),n3(u,v,t))",
"Gy=Fy(u,v,t)+Thickness(u,v,t)*R(n2(u,v,t),n1(u,v,t),n3(u,v,t))",
"Gz=Fz(u,v,t)+Thickness(u,v,t)*R(n3(u,v,t),n1(u,v,t),n2(u,v,t))",
"Tx=Fx(u,v,t)+Thickness2(u,v,t)*R(n1(u,v,t),n2(u,v,t),n3(u,v,t))",
"Ty=Fy(u,v,t)+Thickness2(u,v,t)*R(n2(u,v,t),n1(u,v,t),n3(u,v,t))",
"Tz=Fz(u,v,t)+Thickness2(u,v,t)*R(n3(u,v,t),n1(u,v,t),n2(u,v,t))",
"F1x=Gx(t,v,t)",
"F1y=Gy(t,v,t)",
"F1z=Gz(t,v,t)",
"DFxv=(F1x(u,v+dv,t)-F1x(u,v,t))/dv",
"DFyv=(F1y(u,v+dv,t)-F1y(u,v,t))/dv",
"DFzv=(F1z(u,v+dv,t)-F1z(u,v,t))/dv",
"DFxv2=(DFxv(u,v+dv,t)-DFxv(u,v,t))/dv",
"DFyv2=(DFyv(u,v+dv,t)-DFyv(u,v,t))/dv",
"DFzv2=(DFzv(u,v+dv,t)-DFzv(u,v,t))/dv",
"Rapp=((u)/sqrt(u*u+v*v+t*t))",
"Nx=Rapp(DFxv2(u,v,t),DFyv2(u,v,t),DFzv2(u,v,t))",
"Ny=Rapp(DFyv2(u,v,t),DFxv2(u,v,t),DFzv2(u,v,t))",
"Nz=Rapp(DFzv2(u,v,t),DFyv2(u,v,t),DFxv2(u,v,t))",
"Bx=1/sqrt(u*u+v*v+t*t)",
"Binx=(DFyv(u,v,t)*Nz(u,v,t)-DFzv(u,v,t)*Ny(u,v,t))*Bx(DFxv(u,v,t),DFyv(u,v,t),DFzv(u,v,t))",
"Biny=(DFzv(u,v,t)*Nx(u,v,t)-DFxv(u,v,t)*Nz(u,v,t))*Bx(DFxv(u,v,t),DFyv(u,v,t),DFzv(u,v,t))",
"Binz=(DFxv(u,v,t)*Ny(u,v,t)-DFyv(u,v,t)*Nx(u,v,t))*Bx(DFxv(u,v,t),DFyv(u,v,t),DFzv(u,v,t))",
"F2x=Tx(u,t,t)",
"F2y=Ty(u,t,t)",
"F2z=Tz(u,t,t)",
"DFxu=(F2x(u+du,v,t)-F2x(u,v,t))/du",
"DFyu=(F2y(u+du,v,t)-F2y(u,v,t))/du",
"DFzu=(F2z(u+du,v,t)-F2z(u,v,t))/du",
"DFxu2=(DFxu(u+du,v,t)-DFxu(u,v,t))/du",
"DFyu2=(DFyu(u+du,v,t)-DFyu(u,v,t))/du",
"DFzu2=(DFzu(u+du,v,t)-DFzu(u,v,t))/du",
"Nxu=Rapp(DFxu2(u,v,t),DFyu2(u,v,t),DFzu2(u,v,t))",
"Nyu=Rapp(DFyu2(u,v,t),DFxu2(u,v,t),DFzu2(u,v,t))",
"Nzu=Rapp(DFzu2(u,v,t),DFyu2(u,v,t),DFxu2(u,v,t))",
"Binxu=(DFyu(u,v,t)*Nzu(u,v,t)-DFzu(u,v,t)*Nyu(u,v,t))*Bx(DFxu(u,v,t),DFyu(u,v,t),DFzu(u,v,t))",
"Binyu=(DFzu(u,v,t)*Nxu(u,v,t)-DFxu(u,v,t)*Nzu(u,v,t))*Bx(DFxu(u,v,t),DFyu(u,v,t),DFzu(u,v,t))",
"Binzu=(DFxu(u,v,t)*Nyu(u,v,t)-DFyu(u,v,t)*Nxu(u,v,t))*Bx(DFxu(u,v,t),DFyu(u,v,t),DFzu(u,v,t))",
"Sx=F1x(u,v,t)+(r0/100)*Nx(u,v,t)*cos(u)+(r0/100)*Binx(u,v,t)*sin(u)",
"Sy=F1y(u,v,t)+(r0/100)*Ny(u,v,t)*cos(u)+(r0/100)*Biny(u,v,t)*sin(u)",
"Sz=F1z(u,v,t)+(r0/100)*Nz(u,v,t)*cos(u)+(r0/100)*Binz(u,v,t)*sin(u)",
"Tx=F2x(u,v,t)+(r0/100)*Nxu(u,v,t)*cos(v)+(r0/100)*Binxu(u,v,t)*sin(v)",
"Ty=F2y(u,v,t)+(r0/100)*Nyu(u,v,t)*cos(v)+(r0/100)*Binyu(u,v,t)*sin(v)",
"Tz=F2z(u,v,t)+(r0/100)*Nzu(u,v,t)*cos(v)+(r0/100)*Binzu(u,v,t)*sin(v)"
],
"Fx": [
"Sx(u,v,u1min)",
"Sx(u,v,u1min+Gu)",
"Sx(u,v,u1min+2*Gu)",
"Sx(u,v,u1min+3*Gu)",
"Sx(u,v,u1min+4*Gu)",
"Sx(u,v,u1min+5*Gu)",
"Sx(u,v,u1min+6*Gu)",
"Sx(u,v,u1min+7*Gu)",
"Sx(u,v,u1max)",
"Tx(u,v,v1min)",
"Tx(u,v,v1min+Gv)",
"Tx(u,v,v1min+2*Gv)",
"Tx(u,v,v1min+3*Gv)",
"Tx(u,v,v1min+4*Gv)",
"Tx(u,v,v1min+5*Gv)",
"Tx(u,v,v1min+6*Gv)",
"Tx(u,v,v1min+7*Gv)",
"Tx(u,v,v1max)"
],
"Fy": [
"Sy(u,v,u1min)",
"Sy(u,v,u1min+Gu)",
"Sy(u,v,u1min+2*Gu)",
"Sy(u,v,u1min+3*Gu)",
"Sy(u,v,u1min+4*Gu)",
"Sy(u,v,u1min+5*Gu)",
"Sy(u,v,u1min+6*Gu)",
"Sy(u,v,u1min+7*Gu)",
"Sy(u,v,u1max)",
"Ty(u,v,v1min)",
"Ty(u,v,v1min+Gv)",
"Ty(u,v,v1min+2*Gv)",
"Ty(u,v,v1min+3*Gv)",
"Ty(u,v,v1min+4*Gv)",
"Ty(u,v,v1min+5*Gv)",
"Ty(u,v,v1min+6*Gv)",
"Ty(u,v,v1min+7*Gv)",
"Ty(u,v,v1max)"
],
"Fz": [
"Sz(u,v,u1min)",
"Sz(u,v,u1min+Gu)",
"Sz(u,v,u1min+2*Gu)",
"Sz(u,v,u1min+3*Gu)",
"Sz(u,v,u1min+4*Gu)",
"Sz(u,v,u1min+5*Gu)",
"Sz(u,v,u1min+6*Gu)",
"Sz(u,v,u1min+7*Gu)",
"Sz(u,v,u1max)",
"Tz(u,v,v1min)",
"Tz(u,v,v1min+Gv)",
"Tz(u,v,v1min+2*Gv)",
"Tz(u,v,v1min+3*Gv)",
"Tz(u,v,v1min+4*Gv)",
"Tz(u,v,v1min+5*Gv)",
"Tz(u,v,v1min+6*Gv)",
"Tz(u,v,v1min+7*Gv)",
"Tz(u,v,v1max)"
],
"Umax": [
"umax",
"umax",
"umax",
"umax",
"umax",
"umax",
"umax",
"umax",
"umax",
"u1max",
"u1max",
"u1max",
"u1max",
"u1max",
"u1max",
"u1max",
"u1max",
"u1max"
],
"Umin": [
"umin",
"umin",
"umin",
"umin",
"umin",
"umin",
"umin",
"umin",
"umin",
"u1min",
"u1min",
"u1min",
"u1min",
"u1min",
"u1min",
"u1min",
"u1min",
"u1min"
],
"Vmax": [
"v1max",
"v1max",
"v1max",
"v1max",
"v1max",
"v1max",
"v1max",
"v1max",
"v1max",
"vmax",
"vmax",
"vmax",
"vmax",
"vmax",
"vmax",
"vmax",
"vmax",
"vmax"
],
"Vmin": [
"v1min",
"v1min",
"v1min",
"v1min",
"v1min",
"v1min",
"v1min",
"v1min",
"v1min",
"vmin",
"vmin",
"vmin",
"vmin",
"vmin",
"vmin",
"vmin",
"vmin",
"vmin"
]
}
}
PhotoPhotoPhotoPhotoPhoto
07/01/2018
7 Photos - View album
Shared publiclyView activity