极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 31886|回复: 0

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

[复制链接]
发表于 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代码。所以大家应该知道我想做什么了吧,嘿嘿。
  1. import math

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

  4. #生成的数表
  5. line=len(list)     #线数
  6. n=360              #钉子数
  7. r=90              #圆形半径(mm)
  8. i=0
  9. f.write('S1000\n')
  10. f.write('F12000\n')
  11. f.write('G21\n')
  12. f.write('G90\n')
  13. f.write('G92 X0 Y0\n')

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

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

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



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-22 15:58 , Processed in 0.045101 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表