<!DOCTYPE html>
<html lang="en">
<head>
<title>shaluo222</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<meta name="generator" content="FreeCAD 1.0.0">
<style>
* {
margin: 0;
padding: 0;
}
body {
background: #ffffff; /* Old browsers */
background: -moz-linear-gradient(top, #e3e9fc 0%, #ffffff 70%, #e2dab3 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(top, #e3e9fc 0%,#ffffff 70%,#e2dab3 100%); /* Chrome10-25, Safari5.1-6 */
background: linear-gradient(to bottom, #e3e9fc 0%,#ffffff 70%,#e2dab3 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
width: 100vw;
height: 100vh;
}
canvas { display: block; }
#mainCanvas {
width: 100%;
height: 100%;
}
#arrowCanvas {
position: absolute;
left: 0px;
bottom: 0px;
width: 150px;
height: 150px;
z-index: 100;
}
select { width: 170px; }
</style>
</head>
<body>
<canvas id="mainCanvas"></canvas>
<canvas id="arrowCanvas"></canvas>
<script type="module">
// Direct from mrdoob: https://www.jsdelivr.com/package/npm/three
import * as THREE from 'https://cdn.jsdelivr.net/npm/[email protected]/build/three.module.js';
import { OrbitControls } from 'https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/controls/OrbitControls.js';
import { GUI } from 'https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/libs/dat.gui.module.js';
import { Line2 } from 'https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/lines/Line2.js';
import { LineMaterial } from 'https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/lines/LineMaterial.js';
import { LineGeometry } from 'https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/lines/LineGeometry.js';
import { EdgeSplitModifier } from 'https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/modifiers/EdgeSplitModifier.js';
const data = {"camera":{"type":"Perspective","focalDistance":203.71656799316406,"position_x":7.619314193725586,"position_y":-77.15935516357422,"position_z":-152.44786071777344},"file":{},"objects":[{"name":"Body001","color":"#cccce6","opacity":1.0,"verts":"2 a b d e f d e f c a b c g f d g f c a h d a h c l n d f g d0d!d d f e d#d$d d i j d%d&d d(d)d d*d+d d-d:d d;d/d d=d>d d?d@d d[d]d d^d_d d,d.d d x : d k j d `Wb d^d{d d,d|d d}d@d d~d]d d;d`d d=dae dbe+d dce:d d#dde d%dee dfe!d d(dge dhe$d d-die dje/d d[dke d r s dle&d dme>d dne)d d loe d q p dpe_d d `ab dpe{d d~dke dje`d dceie dhede d}dqe d w v d x y dbere dfese d0dse d*dre d?dqe d u v d r t dnege dleee dmeae dte|d dte.d d o p ducvc c l n cuesc cscue c i j c f g cve3c c f e crcsc cscrc c(c&c cpd&c cndod c k j c loe cweZc c k3c cycxe cucoe cUcVc cCcDc cQcRc cGcHc cMcNc cKcLc cLdye c{c|c c^c_c cJdKd cze~c cPdQd c?c@c cFdGd cbdcd cTdUd c;cAe cBdCd cfdgd cXdYd c k+c cxdyd cjdkd c2d s c qud cndoe c#d$d c0d!d c&c(c c%d&d c*c+c c&c)c c(d)d c*d+d c-d:d c;d/d c=d>d c?d@d c[d]d c^d_d c,d.d c x : c `Wb c^d{d c,d|d c}d@d c~d]d c=dae cbe+d cce:d c%dee cfe!d cne)d c(dge che$d cle&d cme>d c r s c|b}b c.b{b c]b^b c>b?b c:b;b c*b s c q p cacbc c qmc cicjc cecfc c%b&b cje`d chede cpe{d cpe_d cje/d c~dke c `ab cceie c-die c[dke c%b)b c}dqe c x y cbere cfese c?dqe c*dre c(b&b cnege cleee cmeae cte|d cte.d cqdBe cCe!c c(b)b c%c$c c#c$c c4dDe c2d3d ctdud cqdEe cocqc c7c6c cFe6c c w v c8c9c c6d7d cocpc c u v c r t c*b8d c o p cncmc c0dse c#dde c;d`d c%b&b9d%b)b9d(b)b9d#c$c9d%c$c9dCe!c9d&c(c9d8c9c9d&c)c9d7c6c9d*c+c9dFe6c9d k+c9dscrc9d;cAe9d?c@c9d^c_c9d{c|c9dscue9dze~c9dve3c9dbdcd9dfdgd9djdkd9dndoe9d k3c9dndod9dweZc9dUcVc9dQcRc9dMcNc9dpd&c9dKcLc9d(c&c9dGcHc9dCcDc9dycxe9ducoe9dqdBe9ducvc9dqdEe9duesc9dtdud9drcsc9d qud9docqc9dxdyd9dBdCd9dFdGd9dJdKd9docpc9dLdye9dncmc9dPdQd9dTdUd9dXdYd9d2d s9d qmc9d2d3d9dicjc9decfc9dacbc9d|b}b9d4dDe9d.b{b9d6d7d9d]b^b9d>b?b9d:b;b9d*b s9d*b8d9d(b&b9d","facets":"2 a b c a c d b e f b f c g a d g d h e b i j k l k m l n o j p o n j q k o q j n r p m s l o t q t u q n v r s w l t x u x y u z A n n A v w B l x C y C D y z E A B F l C G D G H D z I E F J l G K H K L H K M L M N L M O N O P N O Q P z R I S R T U R S I R U V W z z W R Q X P Q Y X Y Z X Y 1 Z 1 2 Z 1 3 2 3 4 2 5 6 7 8 6 5 9 6 8 J 6 l 0 6 J ! 6 0 # 6 ! 7 6 # b a i 4 $ 9 9 $ 6 3 $ 4 3 % $ & % 3 ( % & ) % ( * % ) + % * T % + R % T i - V V - W a - i a g - : f ; / f : = > ? @ > = [ = ? ] c f ] f / ^ = [ _ , . { > @ | : ; } { ~ `ab |bb { }cb ` |db {bbebcb |fb | {fb {dbgbeb |gb |fbhbibjbkbibhbkblbibmbhbjbmbjbnbobpblboblbkbqbmbnbqbnbrbsbpbobsbtbpbubrbvbubqbrbwbxbtbwbtbsbybubvbzbAbxbzbxbwbBbCbDbEbFbGbEbHbFbIbGbDbIbEbGbIbDbCbJbFbHbKbBbDbLbEbIbMbLbIbNbFbJbObKbDbPbLbMbQbPbMbRbvbFbRbFbNbSbObDbTbPbQbUbTbQbVbvbRbWbTbUbXbWbUbYbybvbYbvbVbZbWbXb1bZbXb2bybYb3bZb1b4b3b1b5byb2b6byb5b7b8b9b7b9b0b7b0b!b7b!b#b7b#b$b%b&b8b%b8b7b%b(b)b%b)b*b%b*b&b+b3b4b+b-b:b+b;b-b+b/b;b+b=b/b+b4b=b+b>b?b+b@b>b+b[b3b+b]b[b+b?b]b^b_b,b^b.b_b^b{b.b^b:b{b^b|b}b^b,b|b^b+b:b~byb6b~b@b+b~b`b@b~bac`b~bbcac~bccbc~bdccc~b6bdcec _ .fcgc^bfchcicfc^bhcjc~bgcjcgcfckcyb~bkc~bjclc .AblcAbzblcec .mceclc d c ] d ]ncocpcqcrcjcfcscjcrctc dncucscrcucrcocucocqcvcwcscvc7bwcvcscucxcyc%bxctcyc h dtc htcxcpc ^qcqc ^ [ @ ~ {ab : |yc(b%b$bwc7bDbhczczchc}b}bhc^bDbzcAcDbAcBcDbBcSb e i ; e ; f - g h - hxc ; V | i V ; W -xc Wxc%b V z { V { | R W%b R%b7b z n > z > {vc R7b % Rvc > j ? n j > $ %vc $vcuc j l [ j [ ? 6 $uc 6ucqc l 6qc lqc [,b_b 7 7_b 5 5.b 8_b.b 5 8{b 9.b{b 8 9:b 4{b:b 9 4-b 2 2-b Z:b-b 4-b;b Z Z/b X;b/b Z X=b P/b=b X P4b N=b4b P N1b L L1b H4b1b N1bXb HXbUb H HUb DUbQb D DQb yQbMb y yMb uMbIb u uIb qIbCb q qCb k kCb mCbBb mBbKb m mKb s sKb wKbOb wObSb w wSb BSbBc B BBc F FBc JBcAc J JAc 0Aczc 0 0zc !zc}b ! !|b #}b|b ! #,b 7|b,b #?b>b Y Y>b 1 1@b 3>b@b 1 3`b &@b`b 3 &ac (`bac & (bc ) )bc *acbc (bccc * *dc +ccdc * +6b Tdc6b + T5b S6b5b T S2b U U2b I5b2b S2bYb IYbVb I IVb EVbRb E ERb ARbNb A ANb vNbJb v vJb rJbHb r rHb p pHb oHbEb oEbLb o oLb t tLb xLbPb xPbTb x xTb CTbWb C CWb G GWb KWbZb K KZb MZb3b M M3b O3b[b O O]b Q[b]b O Q?b Y]b?b Q+b^bCcCc^bDc~b+bjdjd+bCc^bgcDcDcgcEcgc~bEcEc~bjdichcFcFchcGcfcicFcfcFcHchcIcGchcDbIcrcfcHcrcHcJcDbGbIcIcGbKcocrcJcocJcLcGbFbKcKcFbMcpcocLcpcLcNcFbOcMcFbvbOc ^pcNc ^NcPcvbrbOcOcrbQcQcnbRcrbnbQcRcjbScnbjbRcScibTcjbibSc = ^Pc =PcUciblbTcTclbVc @ =Uc @UcWclbpbVcVcpbXcXctbYcpbtbXcYcxbZctbxbYcZcAb1cxbAbZc ~ @Wc ~Wc2cAb .1c1c .3c } ~2c }2c4cbb4c5cbb }4cdb5c6cdbbb5cfb6c7cfbdb6c . ,3c3c ,8cgbfb7cgb7c9c , _8c8c _0cebgb9ceb9c!ccb!c#ccbeb!c `#c$c `cb#cab$c%cab `$c _ec0c0cec&c :ab%c :%c(cecmc&c&cmc)c*c :(c / :*cmclc)c)clc+c ] /*c ]*c-clczb+c+czb:cnc ]-cnc-c;czbwb:c:cwb/c/csb=cwbsb/c=cob>csbob=c>ckb?cobkb>c@cnc;ctcnc@ckbhb?c?chb[cyctc@cyc@c]chbmb[c[cmb^c^cqb_cmbqb^c_cub,c,cub.cqbub_cubyb.c{cyc]c(byc{cyb|c.cybkc|c)b(b{c)b{c}c*b}c~c*b)b}c&b~c`c&b*b~c8b`cad8b&b`ckcjc|c|cjcbd9b8bad9badcdjcscbdbdscdd0b9bcd0bcded!bedfd!b0bed#bfdgd#bgdhd#b!bfd$b#bhdscwcddddwcidwc$bhdwchdidEcCcDcEcjdCc3c*c(c8c*c3cKcWcUcMcWcKcPcKcUc0c-c*c0c*c8cIcKcPc2cWcMc%c3c(cOc4c2cOc2cMc1c3c%cQc4cOcZc1c%cZc%c$cRc4cQcRc5c4cRc6c5cYcZc$cYc$c#cSc6cRcSc7c6cXcYc#cXc#c!cTc7cScVcXc!cVc7cTcVc!c9cVc9c7ccd[c^cad?c[cad[ccdedcd^c`c?cad`c=c>c`c>c?cfd^c_cfded^c~c=c`cgd_c,cgd,c.cgdfd_c}c/c=c}c=c~chdgd.c{c:c/c{c/c}cGcIcPcNcGcPc;c0c&c;c-c0c|chd.c+c:c{c)c;c&cLcFcGcLcGcNcJcHcFcJcFcLcdd|cbdid|cddidhd|c]c)c+c]c+c{c@c)c]c@c;c)c","wires":["1abcabdefdefcabc","1efcefdgfdgfcefc","1ahcahdabdabcahc","1fedfgdijdkjdlmdlndgfdefdabdahdopdqpdrsdrtduvdwvdfed","1xydzAdBCdDEdFGdHIdJKdLMdNOdPQdRSdTUdVWdXYdZ1d23d45d26dZ7dX8dV9dT0dR!dP#dN$dL%dJ&dH(dF)dD*dB+dz-dx
电子沙漏(mircopython版)
需积分: 0 186 浏览量
更新于2025-07-04
收藏 237KB ZIP 举报
电子沙漏是利用现代技术对传统沙漏的创新演绎,而以MicroPython版本实现的电子沙漏,更是结合了编程语言与硬件操作的教育和娱乐产品。MicroPython是一种针对微控制器和嵌入式系统的Python编程语言的实现,它将Python语言的简洁易读性与微控制器的硬件控制能力相结合,使得开发者可以用更简单的代码实现复杂的电子控制功能。
在这个项目中,沙漏3D外壳的设计和制作是关键环节之一。通过使用freeSCAD这样的开源软件进行3D建模,设计师可以自由地创建和修改沙漏的外壳设计。freeSCAD是一个功能强大的3D CAD工具,特别适合创建精确的3D模型,它允许用户通过编写代码来描述3D对象,而非传统的点击和拖动界面。这种代码驱动的设计方法提供了极高的灵活性和精确性,使得沙漏外壳的设计能够达到极高的复杂度和个性化水平。
在提供的文件名称列表中,我们可以看到包括3MF和FCStd格式的文件。3MF是一种XML为基础的3D打印文件格式,用于描述3D模型,包括几何形状、颜色和其他属性。这种格式被广泛应用于3D打印机和相关软件中,因为它能够提供更加精确的打印输出。而FCStd是freeSCAD软件的项目文件格式,用于保存freeSCAD设计项目的所有元素和配置。
此外,列表中还包含了HTML文件,这表明项目可能还包括了某种形式的网络互动或用户界面。HTML文件可以作为网页内容展示设计信息,或者提供一个沙漏操作的教程和交互平台。用户可以通过网页界面了解沙漏的工作原理,或者亲自通过MicroPython编程来控制电子沙漏。
这个项目不仅结合了硬件控制和3D建模,还通过网络界面增强了用户体验。它为用户提供了一个了解和实践MicroPython编程,同时发挥创造力设计个性化沙漏的机会。通过这样的跨领域结合,电子沙漏项目成为了一个集技术、教育和艺术于一体的综合性产品。

weixin_35976269
- 粉丝: 22
最新资源
- 该项目为一个集数据抓取与展示一体的ACM队员数据系统,基于Django、python实现。.zip
- 辅助背单词软件,基于艾宾浩斯记忆曲线(其实背啥都行)的Python重构版,增加在线查词与翻译等功能.zip
- 基于C开发的命令行输入输出流重定向与实时分析工具_支持快捷按键和文本框输入实时过滤计算分析多格式结果呈现文本提示弹窗曲线表格支持批量测试和日志抓取_用于开发调试协议分.zip
- 各种有用的web api 基于Golang, Python(tornado django scrapy gevent).zip
- 华南理工大学找到卷王,基于 Python 的综测系统数据爬虫.zip
- 湖南大学(HNU)数据库系统课程大作业 ATM系统 前端基于Python的PyQt5,后端基于MySQL.zip
- (新闻爬虫),基于python+Flask+Echarts,实现首页与更多新闻页面爬取
- 基于 Flask + Requests 的全平台音乐接口 Python 版.zip
- 基于 FFmpeg ,使用 Python 开发的批量媒体文件格式转换器。.zip
- 基于 CAI 的 OneBot Python 实现.zip
- 基于 nonebot2 开发的消息交互式 Python 解释器,依赖 docker SDK.zip
- 基于 Python 3 + Django 2 开发的用于适配手机的简单 Jenkins 构建平台.zip
- Python 语言的爬楼梯问题实现-计算爬到第 n 级台阶的方法数
- 基于 Napcat, NcatBot, JMComic-Crawler-Python 的 QQ 机器人。.zip
- 基于 Python Tornado 的博客程序 (练习).zip
- 基于 Python 3.5 + Django 2.0 开发的简单个人博客.zip