Loading TechIDaily…
Loading TechIDaily…
Sandflow / Industrial
Hosted on Hugging Face · Runtime not tested

Categories aid discovery; they are not runtime certifications.
Download the complete package with its dependencies.
Browse package on HF ↗Parametric Python program with 12 kinematic joints (UsdPhysics). Constructed for autonomous simulation and LLM synthesis.
import sand3d as s3d
def infusion_stand():
root = s3d.at(stand(), x=14, y=3, z=42)
a = s3d.at(caster_four(), x=-248, y=-186.5, z=18)
b = s3d.at(caster_six(), x=15, y=268.5, z=18)
c = s3d.at(caster_two(), x=277.5, y=-185.5, z=15)
d = s3d.at(caster_five(), x=-248, y=117, z=20)
e = s3d.at(caster_one(), x=278, y=117, z=17)
f = s3d.at(caster_three(), x=15, y=-337.5, z=18)
s3d.joint(&class="tok-comment">#39;joint_carriage_04_joint_00class="tok-string">39;, a, on=s3d.local(root, x=-262, y=-151, z=74), kind=39;continuousclass="tok-string">39;, axis=39;+Z39;)
s3d.joint(&class="tok-comment">#39;joint_carriage_06_joint_00class="tok-string">39;, b, on=s3d.local(root, x=1, y=304, z=74), kind=39;continuousclass="tok-string">39;, axis=39;+Z39;)
s3d.joint(&class="tok-comment">#39;joint_carriage_02_joint_00class="tok-string">39;, c, on=s3d.local(root, x=264, y=-151, z=74), kind=39;continuousclass="tok-string">39;, axis=39;+Z39;)
s3d.joint(&class="tok-comment">#39;joint_carriage_05_joint_00class="tok-string">39;, d, on=s3d.local(root, x=-262, y=152, z=74), kind=39;continuousclass="tok-string">39;, axis=39;+Z39;)
s3d.joint(&class="tok-comment">#39;joint_carriage_01_joint_00class="tok-string">39;, e, on=s3d.local(root, x=264, y=152, z=74), kind=39;continuousclass="tok-string">39;, axis=39;+Z39;)
s3d.joint(&class="tok-comment">#39;joint_carriage_03_joint_00class="tok-string">39;, f, on=s3d.local(root, x=1, y=-303, z=74), kind=39;continuousclass="tok-string">39;, axis=39;+Z39;)
return s3d.assembly(&class="tok-comment">#39;infusion_stand39;, root, a,b,c,d,e,f)
def stand(lower_d=32, lower_h=814, upper_d=18, upper_z=936, upper_h=940, foot_w=56, foot_r=325, foot_h=80, plate_w=169, plate_h=256, plate_d=14, plate_x=-39, plate_y=67, plate_z=1384, hook_r=52):
sleeve=s3d.cylinder(&class="tok-comment">#39;sleeve39;,d=lower_d,h=lower_h)
shaft=s3d.at(s3d.cylinder(&class="tok-comment">#39;shaft39;,d=upper_d,h=upper_h),z=upper_z)
hub=s3d.cylinder(&class="tok-comment">#39;hub39;,d=lower_d*6,h=upper_d)
feet=[]
for i in range(6):
foot=radial_foot(w=foot_w,r=foot_r,h=foot_h,t=upper_d)
feet.append(s3d.at(s3d.group(&class="tok-comment">#39;foot39;,foot),rz=i*60))
panel=s3d.at(s3d.box(&class="tok-comment">#39;panel39;,w=plate_w,d=plate_d,h=plate_h),x=plate_x,y=plate_y,z=plate_z)
rim=s3d.box(&class="tok-comment">#39;border39;,w=plate_w,d=plate_d*2,h=plate_h)
rim=s3d.pocket(rim,s3d.rect(w=plate_w-plate_d,d=plate_h-plate_d),depth=plate_d*2,on=s3d.bbox(rim,&class="tok-comment">#39;+Y39;).move(y=plate_h/2))
rim=s3d.at(rim,x=plate_x,y=plate_y,z=plate_z)
panel=s3d.join(panel,rim)
supports=s3d.at(s3d.box(&class="tok-comment">#39;support39;,w=lower_d,d=plate_y,h=upper_d),y=plate_y/2,z=plate_z+plate_h/2)
hooks=[]
for i in range(4):
hook=crown_hook(r=hook_r,t=upper_d/3,h=upper_z+upper_h)
hooks.append(s3d.at(hook,rz=i*90))
tube=s3d.wire(&class="tok-comment">#39;infusion_line39;,path=s3d.spline([(plate_x-plate_w/2,plate_y,plate_z+plate_h/3),(plate_x-plate_w/2-plate_d,plate_y+plate_d,plate_z),(plate_x-plate_w/2,plate_y+plate_d*3,upper_z)]),d=upper_d/9)
s3d.material([sleeve,shaft,hub,feet,supports,hooks],&class="tok-comment">#39;chromeclass="tok-string">39;,color=39;#b8bec339;)
s3d.material(panel,&class="tok-comment">#39;plasticclass="tok-string">39;,color=39;#a6adb039;)
s3d.material(tube,&class="tok-comment">#39;plasticclass="tok-string">39;,color=39;#d5dce039;)
return s3d.group(&class="tok-comment">#39;stand39;,sleeve,shaft,hub,feet,panel,supports,hooks,tube)
def radial_foot(w,r,h,t):
profile=s3d.poly([(0,0),(r/2,0),(r*0.62,h/4),(r*0.88,h),(r,h),(r,h-t),(r*0.9,h-t),(r*0.65,h/4-t/2),(r/2,-t/4),(0,-t/4)])
foot=s3d.extrude(&class="tok-comment">#39;radial_foot39;,profile,h=w)
return s3d.at(foot,x=-w/2,rx=90,rz=90)
def crown_hook(r,t,h):
path=s3d.spline([(0,0,h-r/2),(0,r/3,h),(0,r,h+r/2),(0,r*2,h+r/2),(0,r*2,h-r/3),(0,r*1.4,h-r/2),(0,r*1.3,h)])
return s3d.wire(&class="tok-comment">#39;crown_hook39;,path=path,d=t)
def caster_four(w=32,d=111,h=77):
solid = fork(w=w,d=d,h=h)
wheel = s3d.at(wheel_four(),x=0.5,y=13,z=-18)
s3d.joint(&class="tok-comment">#39;joint_wheel_04_joint_00class="tok-string">39;,wheel,on=s3d.local(solid,x=0,y=13,z=20),kind=39;continuousclass="tok-string">39;,axis=39;-X39;)
return s3d.group(&class="tok-comment">#39;caster_four39;,solid,wheel)
def fork(w,d,h):
cheek=s3d.extrude(&class="tok-comment">#39;fork_cheek39;,s3d.poly([(-d/5,0),(d/5,h/5),(d/2,h),(d/5,h),(0,h/2),(-d/4,h/4)]),h=w/6)
cheek=s3d.at(cheek,x=w/2,rx=90,rz=90)
twin=s3d.transform(s3d.copy(cheek),mirror=&class="tok-comment">#39;x39;)
cap=s3d.at(s3d.box(&class="tok-comment">#39;fork_cap39;,w=w,d=d/3,h=h/6),y=d/4,z=h-h/6)
brake=s3d.at(s3d.box(&class="tok-comment">#39;brake39;,w=w*0.8,d=d/2,h=h/12),y=-d/4,z=h*0.7)
solid=s3d.join(cheek,twin,cap,brake)
s3d.material(solid,&class="tok-comment">#39;aluminiumclass="tok-string">39;,color=39;#9ba4a939;)
return solid
def wheel_four(w=19,d=77,h=77):
solid=wheel_solid(w=w,d=d)
return s3d.group(&class="tok-comment">#39;wheel_four39;,solid)
def wheel_solid(w,d):
solid=s3d.cylinder(&class="tok-comment">#39;tire39;,d=d,h=w)
solid=s3d.at(solid,x=-w/2,z=d/2,ry=90)
s3d.material(solid,&class="tok-comment">#39;rubberclass="tok-string">39;,color=39;#45494c39;)
return solid
def caster_six(w=32,d=111,h=77):
solid=fork(w=w,d=d,h=h)
wheel=s3d.at(wheel_six(),y=13.5,z=-18)
s3d.joint(&class="tok-comment">#39;joint_wheel_06_joint_00class="tok-string">39;,wheel,on=s3d.local(solid,x=0,y=13,z=20),kind=39;continuousclass="tok-string">39;,axis=39;-X39;)
return s3d.group(&class="tok-comment">#39;caster_six39;,solid,wheel)
def wheel_six(w=20,d=78,h=77):
return s3d.group(&class="tok-comment">#39;wheel_six39;,wheel_solid(w=w,d=d))
def caster_two(w=33,d=113,h=80):
solid=fork(w=w,d=d,h=h)
wheel=s3d.at(wheel_two(),y=12,z=-15)
s3d.joint(&class="tok-comment">#39;joint_wheel_02_joint_00class="tok-string">39;,wheel,on=s3d.local(solid,x=0,y=12,z=23),kind=39;continuousclass="tok-string">39;,axis=39;-X39;)
return s3d.group(&class="tok-comment">#39;caster_two39;,solid,wheel)
def wheel_two(w=19,d=77,h=77):
return s3d.group(&class="tok-comment">#39;wheel_two39;,wheel_solid(w=w,d=d))
def caster_five(w=32,d=110,h=75):
solid=fork(w=w,d=d,h=h)
wheel=s3d.at(wheel_five(),x=0.5,y=13,z=-20)
s3d.joint(&class="tok-comment">#39;joint_wheel_05_joint_00class="tok-string">39;,wheel,on=s3d.local(solid,x=0,y=13,z=19),kind=39;continuousclass="tok-string">39;,axis=39;-X39;)
return s3d.group(&class="tok-comment">#39;caster_five39;,solid,wheel)
def wheel_five(w=19,d=78,h=77):
return s3d.group(&class="tok-comment">#39;wheel_five39;,wheel_solid(w=w,d=d))
def caster_one(w=32,d=110,h=78):
solid=fork(w=w,d=d,h=h)
wheel=s3d.at(wheel_one(),y=13,z=-17)
s3d.joint(&class="tok-comment">#39;joint_wheel_01_joint_00class="tok-string">39;,wheel,on=s3d.local(solid,x=0,y=13,z=21),kind=39;continuousclass="tok-string">39;,axis=39;-X39;)
return s3d.group(&class="tok-comment">#39;caster_one39;,solid,wheel)
def wheel_one(w=18,d=78,h=77):
return s3d.group(&class="tok-comment">#39;wheel_one39;,wheel_solid(w=w,d=d))
def caster_three(w=32,d=111,h=75):
solid=fork(w=w,d=d,h=h)
wheel=s3d.at(wheel_three(),y=13,z=-17)
s3d.joint(&class="tok-comment">#39;joint_wheel_03_joint_00class="tok-string">39;,wheel,on=s3d.local(solid,x=0,y=13,z=20),kind=39;continuousclass="tok-string">39;,axis=39;-X39;)
return s3d.group(&class="tok-comment">#39;caster_three39;,solid,wheel)
def wheel_three(w=18,d=77,h=77):
return s3d.group(&class="tok-comment">#39;wheel_three39;,wheel_solid(w=w,d=d))🚀 Sand3D Modeling Engine: Open Interactive Sand3D Explorer Space ↗
Sandflow (Sand3D: 3D-as-Code Ecosystem)
Hosted on Hugging Face: SZFSPC/techidaily-resourcesba1baf9d89ddf57433d7c47cb461f6d8883067a1
Revision: ba1baf9d89ddf57433d7c47cb461f6d8883067a1
licenseSHA-256:
commercialPermittedSHA-256:
notesSHA-256: