33 lines
2.3 KiB
Python
33 lines
2.3 KiB
Python
from PIL import Image,ImageDraw,ImageFont,ImageChops
|
|
from pathlib import Path
|
|
root=Path(r'C:\projects\wheel\models\new_motor_corners_1mm_concept')
|
|
font='C:/Windows/Fonts/msyh.ttc'
|
|
def F(n):return ImageFont.truetype(font,n)
|
|
im=Image.new('RGB',(2000,1120),'white');d=ImageDraw.Draw(im)
|
|
d.text((55,25),'新电机角码与 1 mm 垫片',font=F(40),fill='#183455')
|
|
d.text((58,85),'角码直接贴电机;垫片夹在角码和 2020 型材之间',font=F(24),fill='#314e65')
|
|
d.text((60,145),'模型局部(红色为垫片)',font=F(26),fill='#172c43')
|
|
base=Image.open(root/'单侧角码垫片特写.png').convert('RGB');diff=ImageChops.difference(base,Image.new('RGB',base.size,'white'));b=diff.getbbox();base=base.crop(b);base.thumbnail((930,750));im.paste(base,(35,205))
|
|
d.text((1045,145),'接触层叠剖面(示意,非比例)',font=F(26),fill='#172c43')
|
|
# canvas positions: motor z=0 baseline at y=810, x+ to right, z+ upwards
|
|
d.rectangle((1050,810,1920,920),fill='#abb4bd',outline='#394b59',width=3)
|
|
d.text((1370,845),'电机背面',font=F(27),fill='#172c43')
|
|
# L foot contacts motor, leg extends vertically
|
|
d.polygon([(1180,790),(1480,790),(1480,345),(1515,345),(1515,810),(1180,810)],fill='#e39c3c',outline='#654a1e')
|
|
d.text((1190,738),'新角码',font=F(24),fill='#64400b')
|
|
# Rail with exact nominal corner-side face at x1545, visible spacer between x1515 and1545
|
|
d.rectangle((1545,335,1850,810),fill='#71899b',outline='#1d384c',width=3)
|
|
d.text((1630,490),'2020 型材',font=F(25),fill='white')
|
|
# washer represented as full y cross section red of thickness 1 mm
|
|
d.rectangle((1515,510,1545,610),fill='#d82f36',outline='#8c1824',width=2)
|
|
d.line((1370,560,1650,560),fill='#28303a',width=8)
|
|
d.rectangle((1370,540,1398,580),fill='#485b69')
|
|
d.text((1085,350),'1 mm 金属垫片',font=F(26),fill='#bd2029')
|
|
d.line([(1280,390),(1445,390),(1529,509)],fill='#bd2029',width=4)
|
|
d.polygon([(1529,509),(1515,491),(1535,496)],fill='#bd2029')
|
|
d.text((1155,690),'角码贴紧电机',font=F(22),fill='#61400d')
|
|
d.text((1550,670),'螺丝示意;槽和滑块未建模',font=F(18),fill='#fff')
|
|
d.text((55,1000),'每个电机角码的型材侧各 1 片,共 4 片;电机侧不放垫片。',font=F(25),fill='#173756')
|
|
d.text((55,1045),'此图用于表达安装方向,未确认实际角码弯曲半径、孔位及五金尺寸。',font=F(21),fill='#b04337')
|
|
im.save(root/'角码垫片位置_剖面示意.png')
|