xuexibanyun 发表于 2021-5-22 17:53:15

利用写字机定制你的专属绕线画

本帖最后由 xuexibanyun 于 2021-5-22 18:19 编辑

情人节、520想给女朋友送一个特别的礼物?打开某宝搜一搜,发现了如下东东:

点进去看看,根据自己提供的照片定制的价格。。。打扰了。。。
然后百度了一下绕线画,发现了一个开源项目,网页链接如下:
https://halfmonty.github.io/StringArtGenerator/
1、设置好参数
2、上传图片,等待一小会儿,就会看见下边逐渐生成了绕线画和一个数组。

生成的效果图,我设置了2000线,线宽80,这样更接近我用写字机画出来的实际效果,如果用40或更小的参数,效果图会更好。

下边是生成的数组,把框里的数组复制出来,动手能力强的同学就可以找个板子,画个大圆,按照设置的pin数等分,按顺序标上序号,钉上钉子,开始按照数组顺序拉线啦。

但是,作为理工男,就这?太不高级了
然后一边查语法手册,一边撸了一段简单的python代码,把这一大串数组转化成了G代码。所以大家应该知道我想做什么了吧,嘿嘿。
import math

f=open('D:\gcode_output.txt','a')
list=[******]#把数表copy到方括号里

#生成的数表
line=len(list)   #线数
n=360            #钉子数
r=90            #圆形半径(mm)
i=0
f.write('S1000\n')
f.write('F12000\n')
f.write('G21\n')
f.write('G90\n')
f.write('G92 X0 Y0\n')

while i<line:
    x=r*(1+math.cos((2*list*math.pi)/n))
    y=r*(1+math.sin((2*list*math.pi)/n))
    #print('G1 X%.3f'%x,' Y%.3f'%y)
    f.write('G1 X%.3f'%x)
    f.write(' Y%.3f\n'%y)
    if i==0:
      f.write('M3\n')
      f.write('G4 P0.5\n')
    i+=1
f.write('M5\n')
f.write('G0 X0 Y0\n')
f.close()运行这段python代码,就可以在D盘目录下找到gcode_output.txt这个文件,打开就能看到生成的G代码了。
里边的半径r等参数需要根据你的写字机绘图面积进行更改。
接下来连接写字机,导入G代码,运行。。。

经过三个小时的等待,终于画好了,其实可以把写字机的速度设置更快一点的。

画出来的是镜像,不过大体已经实现了。
写字机上的笔是0.5mm的签字笔,画的线太粗,换个0.2或者更细的笔效果应该会更好,以后试试看。



页: [1]
查看完整版本: 利用写字机定制你的专属绕线画