利用写字机定制你的专属绕线画-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3710|回复: 2

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

[复制链接]
发表于 2021-5-22 18:08 | 显示全部楼层 |阅读模式
本帖最后由 xuexibanyun 于 2021-5-22 18:17 编辑

情人节、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或者更细的笔效果应该会更好,以后试试看。




发表于 2021-6-20 05:37 来自手机 | 显示全部楼层
太强了,牛皮
发表于 2021-7-22 00:33 | 显示全部楼层
太强啦,上次看到G代码还是去参观智能车床的时候,顺便提一嘴,网站收下啦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:44 , Processed in 0.168367 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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