做多棱锥纸模这事情说起来就几个字——几个三角形加一个底面剪下来折上去粘住就行。可真动手做第一个的时候十有八九会卡在同一处展开图上量出来的那条三角形的高跟棱锥本身的高压根不是一回事。照着棱锥的高去画侧面做出来的成品要么顶角合不拢要么侧面往外鼓、底面翘成薯片。问题不在手笨在于从立体退到平面这一步有几个量在脑子里被混成同一个了。这篇写的是多棱锥展开图怎么算、纸模怎么落地、以及同一张展开图在钣金、屋面、包装、吸音造型这些地方是怎么被用起来的。零基础也能跟着做手里有 CAD 或者会一点脚本的后半段有参数化出图的路子可以直接抄。我自己做过几轮三棱、四棱、六棱的纸模也拿同样的几何去核对过钣金下料踩过的坑基本都在下面。1. 展开图摊开的到底是什么1.1 展开不是投影是沿棱剪开摊平很多人第一反应是把棱锥压扁觉得压扁之后看到的就是展开图。这是错的。压扁是正投影投影里的侧面会变形、会互相遮挡边长根本不保真。展开图的定义是沿着若干条棱把表面剪开让每个面绕着自己剩下的那条棱旋转直到全部躺进同一个平面旋转过程中每个面自身的形状和大小完全不变。用生活里的话说是把纸盒拆开铺平不是从上面看纸盒。这个定义带来一个直接结论展开图上的每一段长度都等于立体上对应那条线段的真实长度。侧面三角形的两条腰就是棱锥的侧棱侧面三角形的底边就是底面多边形的边长而侧面三角形从顶点到底边中点的那条高是侧面这个等腰三角形自身的高。这三条线在展开图上都能量量出来就是真值不用做任何投影修正。真正需要算的是这些长度怎么从棱锥的两个已知条件底面边长、棱锥高度推出来。1.2 斜高才是画在展开图上的那条高这是最容易翻车的一个点值得单独拎出来说。棱锥的高是顶点到底面的垂直距离方向垂直于底面是一个实打实的立体量通常记作 h。而侧面三角形的高是从顶点到底边中点的距离这条线躺在侧面这个平面里业内一般叫斜高记作 m。两者只有在一种极端情况下相等——侧面完全垂直于底面也就是棱锥退化成棱柱的时候。其余情况斜高永远大于棱锥的高。为什么把顶点、底面中心、底面某条边的中点这三个点连起来得到一个直角三角形竖直的直角边是 h水平的直角边是底面中心到这条边的距离也就是底面多边形的内切圆半径 r斜边就是 m。所以m √(h² r²)拿四棱锥举例底面正方形边长 a 100 mm高 h 100 mm。底面内切圆半径 r a/2 50 mm于是 m √(100² 50²) 111.80 mm。你要是拿 100 mm 去画侧面的高做出来的锥体会明显比设计的高瘦顶部合不拢因为每个三角形的顶角被画小了。同一套三角形还能算出侧棱长 l用的是顶点、底面中心、底面顶点构成的另一个直角三角形l √(h² R²)其中 R 是底面多边形的外接圆半径。还是这个四棱锥R a/√2 70.71 mml √(100² 70.71²) 122.47 mm。这个数在展开图上是三角形两条腰的长度画图时直接当半径用。1.3 顶角处的缺口角暴露了平面和立体的差别把 n 个侧面三角形以顶点为中心、首尾相接排开每个三角形的顶角是 α那么顶点周围被占掉的角度是 nα。这个和永远小于 360°。这个差值就是展开图在顶点处留下的那块缺口。缺口不是画错了恰恰相反它是立体存在的证据。一个顶点周围角度和等于 360° 的形状是平的要变成立体的角就必须少掉一块角度少掉的那部分正是这个顶点在三维里被吃掉的曲率。底面边数越多、锥体越矮缺口越小锥体越尖缺口越大。四棱锥 a100、h100 的例子侧面顶角 α 2·arcsin(a/(2l)) 2·arcsin(50/122.47) 48.19°四个加起来 192.76°缺口 167.24°快一半了。这意味着这个锥其实相当尖侧面几乎要立起来。理解缺口还有一个实用价值它决定了顶点处的粘接难度。缺口大说明相邻两个侧面在顶点附近的夹角小粘接翼片如果做成矩形在顶点处会严重堆料、互相顶住成品顶部必然鼓起一个疙瘩。后面讲翼片形状时会具体说怎么处理。2. 动笔前必须锁定的几个量2.1 从底面边长推出两个半径底面是正 n 边形只给一个边长 a 是不够的画展开图必须同时知道外接圆半径 R 和内切圆半径 r。这两个量决定了侧棱和斜高一步错后面全错。R a / (2·sin(π/n))r a / (2·tan(π/n))推导不复杂正 n 边形可以切成 n 个等腰三角形每个的顶角是 2π/n腰是 R底是 a。用正弦定理和半角关系就能得到上面两式。实际使用时不用每次推记住几个常用值更快正三角形的 R a/√3 ≈ 0.5774ar a/(2√3) ≈ 0.2887a正方形 R 0.7071ar 0.5a正六边形 R ar 0.8660a。正六边形那个外接圆半径等于边长的性质是六棱锥纸模特别适合新手练手的原因之一算起来几乎不出错。顺带说一个直觉n 越大R 和 r 越接近底面越圆。当 n 趋于无穷两者都收敛到 a·n/(2π)也就是底面圆周长除以 2π 的那个半径。所以高棱锥n 很大在工程上经常直接用圆锥的扇形展开来近似误差可以控制在很小的范围。但纸模这种小尺寸、手工粘接的场景n6 到 n8 就别近似了老老实实按多边形算否则最后一条棱会差出半毫米粘的时候难受。2.2 侧面顶角决定排布是否拥挤侧面顶角 α 的算法有两个等价路径用哪个取决于你手上有什么数据。已知侧棱 l 和底边 aα 2·arcsin(a / (2l))已知斜高 m 和底边 aα 2·arctan(a / (2m))两条路算出来结果一样因为 l、m、a/2 构成直角三角形。实际画图时我更常用第二个因为斜高 m 本来就要算顺手就用了。α 这个值的大小直接关系到展开图的排布能不能平铺。当 nα 接近 360° 时n 个三角形几乎能拼成一个完整的圆盘排布非常紧凑出图省纸当 nα 只有 150°、180° 时三角形之间张得很开展开图会占很大一块面积A4 纸可能放不下一个大尺寸的六棱锥。这是很多人在打印阶段才发现的问题——图上算得好好的一打印发现超边了。所以在定尺寸之前先粗略估一下 nα心里有个数。2.3 一张速查表三种常见棱锥光看公式容易飘直接上数。下面三种都是纸模里最常做的规格参数取整方便手算可以直接拿去用。参数正三棱锥正四棱锥正六棱锥底面边长 a100 mm100 mm50 mm棱锥高 h150 mm100 mm80 mm底面外接圆半径 R57.74 mm70.71 mm50.00 mm底面内切圆半径 r28.87 mm50.00 mm43.30 mm斜高 m152.75 mm111.80 mm90.96 mm侧棱 l160.73 mm122.47 mm94.34 mm侧面顶角 α36.26°48.19°30.74°nα 之和108.78°192.76°184.44°侧面积22913 mm²22361 mm²13644 mm²侧面积那一栏用的是统一公式侧面积 底面周长 × 斜高 ÷ 2。这个公式对任意正棱锥都成立和圆锥的侧面积公式形式一致因为它就是把每个侧面三角形的面积 a·m/2 乘以 n 得到的。做屋面估算、钣金备料的时候这一栏就是你的用量基数。表格里还藏着一个值得注意的现象三棱锥和六棱锥的 nα 都在 110° 到 190° 之间而四棱锥反而最大。原因不在 n在高径比。三棱锥那个例子的 h/a 1.5非常瘦高所以缺口大六棱锥 h/a 1.6也瘦。四棱锥 h/a 1.0相对矮胖缺口其实不算极端。所以判断尖不尖不能只看边数要看 h 和 r 的比值。3. 排布方式比计算更容易决定成败3.1 十字排布和扇形排布选哪个同样一套面摆在纸上有两种主流排法做出来的东西手感完全不同。十字排布是把底面多边形放在正中n 个侧面三角形分别贴在它的 n 条边上整个图形像一朵花或者一个十字。优点是直观一眼就能看懂哪块是哪块剪下来之后底面天然居中粘的时候不容易歪。缺点是所有相邻的侧面之间都没有共享边n 条侧棱全部需要粘接粘缝多、受力点分散做小尺寸还好做大尺寸边长超过 150 mm的时候顶部那个点要同时收拢 n 条缝很容易出现一条缝对不齐、整圈跟着扭的情况。扇形排布是把 n 个三角形以顶点为中心依次排开连成一条扇子底面多边形只贴在其中一个三角形的底边上。这样 n-1 条侧棱是共享边根本不用粘只需要粘 1 条侧棱加上底面的 n-1 条边。粘缝数量从 2n-1 条降到 n 条结构强度明显更好顶角也只需要对准一个位置。代价是扇形排布更费纸因为三角形张开的面积大而且图形不规则裁切时边角料多。另外底面贴在边上之后整个图形变得很长A4 竖版基本放不下大尺寸的。我自己的取舍习惯是底面边长 80 mm 以下用十字80 mm 以上用扇形。小模型粘缝多点无所谓剪裁方便更重要大模型强度优先宁可多费半张纸。还有一个折中方案把扇形从中间断开成两条半扇分别排布粘接时再接上牺牲一条缝换取更好的排布利用率做超大尺寸边长 300 mm 以上的展示模型时可以用。3.2 翼片不是随便画个矩形就行粘接翼片也有叫粘接边、粘接舌片的是展开图上额外长出来的一圈窄条宽度一般 5 到 8 mm。它看起来是附属品实际上对成品质量影响极大尤其是靠近顶点的那一端。最省事的做法是沿需要粘接的棱画一条等宽矩形。这个做法在小尺寸、钝角侧面顶角大的模型上勉强能用但对尖锥体一定出问题。原因在前面提过顶点周围角度不够几条棱挤在一起矩形翼片在顶点附近会互相重叠纸有多厚就叠多厚最后顶上是硬邦邦一坨怎么压都压不平。正确的做法是把翼片做成梯形靠底边那端保持 6 到 8 mm 全宽靠顶点那端收窄到 2 mm 左右斜边与相邻的棱留出 1 到 2 mm 的间隙。这样在顶点收拢时几条翼片是并排靠在一起而不是叠在一起粘完之后顶部是一个相对干净的角。还有一个细节容易被忽略翼片如果贴在三角形的腰上也就是侧棱位置它会跟着侧面一起弯折折叠的时候翼片本身也要折一道等于多了一层厚度。更聪明的做法是尽量把翼片安排在底边上让底面多边形多长出几条边来提供粘接面这样折起来时翼片是平的不参与侧面的弯折粘出来更服帖。扇形排布天然适合这个思路——底面多边形的 n-1 条边全部做成翼片侧棱那边一条缝用胶带或者窄条补强就够。3.3 剪开哪条棱是有讲究的展开图必须剪开至少一条棱扇形排布或者全部侧棱十字排布剪在哪条上成品的伤疤就在哪条上。原则只有一条把粘缝放在最不显眼的位置。做灯罩、摆件这类需要展示的东西粘缝放在背面或者被遮挡的那一面做教学模型粘缝反而可以放在正面因为它能直观展示这条棱是接起来的讲课时有讲解价值。做钣金件时这条规则更硬因为钣金焊接或咬合之后会有明显痕迹必须避开外露的装饰面通常选择在阴角或者被其他构件覆盖的位置。另外剪开的那条棱会成为整个模型的合拢缝它决定了最后的收口难度。如果这条棱特别长瘦高的锥体合拢时两片纸容易错位建议在剪开之前先在这条棱的两侧各标一个对齐记号比如中点位置打一个小点合拢时对准记号再涂胶比凭眼力对齐靠谱得多。4. 从平面到立体手上那几步4.1 纸张克重选错就白干纸太薄折起来棱线软塌粘完站不住纸太厚压痕压不透折的时候纸面起毛甚至断裂翼片也贴不牢。下面这个对应关系是我试下来比较稳的区间供参考。成品尺寸底边 a建议克重说明30–60 mm120–160 g小件太厚反而折不动60–120 mm180–230 g最常用的区间成型和操作平衡120–250 mm250–300 g需要支撑力压痕必须用硬工具250 mm 以上300 g 以上或加内衬单靠纸会塌建议内部加骨架除了克重纸的纤维方向也要留意。卡纸通常有一个顺纹方向顺着纹路折折痕干净利落逆着纹路折折痕容易毛糙、开裂。判断方法很简单撕一小条纸顺着撕裂方向平直的是顺纹撕裂边缘起毛、走偏的是逆纹。如果展开图上的主要折线方向一致尽量让那条方向跟顺纹对齐。这一点在批量做的时候差别特别明显做十个八个可能感觉不到做几十个就受不了了。纸的表面处理也有讲究。哑光卡纸比铜版纸更适合做纸模因为铜版纸表面有涂层胶水渗透不进去粘接强度差而且折痕处涂层容易开裂露白。喷墨打印的话选专门的喷墨卡纸普通卡纸吸墨后会轻微起皱展开图上的直线会变成波浪线量尺寸就不准了。4.2 压痕决定棱线锐不锐这一步是纯手工纸模和看着像那么回事的分水岭。不压痕直接折纸会沿着纤维最弱的地方自己找一条路那条路通常不在你画的线上偏个一两毫米是常事几条棱累积下来顶角就歪了。压痕的工具不用买一支写不出水的圆珠笔、一根钝头骨笔、甚至一把圆头指甲锉都能用。关键是压痕的位置压痕要压在折角的外侧也就是折起来之后被拉伸的那一面。具体到棱锥纸模如果展开图打印的是外表面大多数人的做法那么侧棱处的折痕从外面看是凸起的脊属于山折纸是被拉开的压痕应该做在背面底边处的折痕从外面看是凹进去的角属于谷折压痕做在正面。搞反了会怎样折出来的棱线会变成圆的不是一条锐利的直线视觉上一下子就露怯了。压痕的力度也要控制。太轻没效果太重会把纸压出明显的凹槽甚至压穿表面折起来之后棱线处出现白色裂纹。合适的力度大概是纸背面能看到一条浅浅的压沟正面完全看不出痕迹。300 g 以上的卡纸建议先用废料试压两三道找到手感再上正式件。4.3 折的顺序和粘的顺序反了就麻烦折的时候先把所有的折痕都预折一遍正反各折一次让纸记住位置再开始正式折叠。预折的好处是纸的回弹力被提前释放正式折的时候不会一边折一边翘。粘接顺序扇形排布和十字排布不一样。扇形排布先沿所有侧棱折起把 n 个三角形围成一圈用首尾那条棱上的翼片粘合形成一个没有底的锥裙然后把底面多边形的翼片逐条折起从对面开始往回收最后合拢到第一条边上。这个顺序的好处是锥裙成型的阶段底面是自由的手可以伸进去从内侧压平每条缝。十字排布先把 n 个侧面全部向上折起到位然后依次把相邻的侧棱两两粘合。粘的时候不要一次涂满整条边先在对齐记号处点一点胶固定确认两边对正了再从中点向两端分段补胶。整条边一次涂胶的后果是胶水没干之前纸会滑动等你发现歪了胶已经把位置锁死了。胶水的选择白乳胶木工胶比胶棒好用得多。胶棒干得快但初粘力弱纸稍微有点回弹就崩开白乳胶初粘力也不强但它渗透进纸纤维之后强度高而且干得慢留给你调整的时间。涂胶量宁少勿多薄薄一层就够涂多了纸会吸水膨胀干了之后收缩接缝处出现一道凹下去的沟。双面胶适合做临时定位不适合做最终粘接时间长了会渗油、脱胶。4.4 打印缩放一个几乎人人踩的坑展开图是 1:1 画的打印的时候必须保证 1:1 输出。几乎所有打印对话框里都有一个适应页面或者缩放以适合的默认选项勾上之后你的 100 mm 底边可能变成 96 mm 或者 104 mm误差 4% 听起来不多但几个棱累积下来最后一条缝能差出 8 mm完全粘不上。正确做法是在打印设置里选实际大小或者100%然后在输出之前在图纸上加一个 100 mm 长的标尺条。打出来用尺子量一下标尺量出来是 100 mm 才动手剪。这个动作只需要五秒钟能省掉一整张纸和半小时。还有一个隐藏的坑某些软件的 SVG 或者 PDF 导出默认单位是 pt 或者 px不是 mm。如果导出时没指定单位打开之后整张图会按 0.75 倍或者 1.33 倍走。稳妥的做法是在文件里写死毫米单位或者干脆导出一张带尺寸标注的图打印后对照标注核一遍。5. 同一张展开图在工程里怎么用5.1 钣金下料斜接和折弯补偿跑不掉纸模的展开图可以直接当成钣金件的毛坯形状参考但有两处必须修正否则做出来的件装不上。第一处是折弯补偿。金属板折弯时内侧受压、外侧受拉中间有一层长度不变的中性层。展开料的长度要按中性层算公式是BA π × (R K·T) × θ / 180BA 是折弯补偿长度R 是内折弯半径T 是板厚θ 是折弯角度度K 是中性层系数。K 的取值跟材料、R/T 比值有关软钢在 R≈T 时常用 0.33 到 0.42 这个区间具体数值最好按材料供应商给的表来或者自己做一组折弯试样实测反推。这一步在纸模里完全不用考虑但到了 1.5 mm 厚的钢板上一条棱少算 2 mm四个面就是 8 mm 的缺口。第二处是斜接。棱锥的相邻两个侧面之间的夹角不是 90°折弯线也不是等宽的直条。真正下料时两个面在棱线处是斜接关系需要把每片三角形的边缘切出对应的斜角两块拼起来才能严丝合缝。这个斜角由相邻侧面之间的二面角决定。二面角的算法用三维向量最直接把底面顶点坐标和锥顶坐标写出来分别求两个相邻侧面的法向量法向量夹角取补角就是二面角。手算比较烦实际都在 CAD 里量SolidWorks、Fusion 这类软件建个棱锥实体直接测量两面夹角就行。要注意法向量的朝向朝内朝外算出来的结果差 180°量完拿纸模对一下角度能立刻发现对不对。侧棱的斜接角还有一条经验它是二面角的一半。所以知道二面角之后每片三角形边缘切掉的角就是 (180° - 二面角)/2这个数在激光切割或者等离子切割的排版程序里可以直接当参数输进去。5.2 四坡尖顶椽长就是斜高建筑上的四坡尖顶金字塔顶本质上就是一个正四棱锥的屋面。做这类屋面估算的时候两个数最关键椽条长度和屋面面积。椽条长度直接等于斜高 m前提是椽条从檐口沿屋面直线走到锥顶。实际施工时还要加上檐口挑出的部分和锥顶的连接余量通常各留 200 到 300 mm。屋面面积就是前面那张表里的侧面积等于底面周长乘斜高除以二。这个公式比分成四个三角形分别算再相加快得多也更不容易出错。有个容易忽略的点屋面材料的用量不能直接按侧面积算因为瓦片、金属板都有搭接和裁剪损耗。平板类材料比如金属屋面板的损耗率跟板宽与坡面长度的匹配程度关系很大坡面越长、板越窄裁剪浪费越多。实际操作中会先按侧面积乘一个 1.1 到 1.2 的系数做预算再按排版图精算。另外锥顶附近是四块板交汇的地方收边件必须定制这块的成本经常被漏算。坡度也值得说一句。屋面坡度用侧面与水平面的夹角表示也就是前面算的侧面与底面的二面角 βtan β h / r。四棱锥 a100、h100 的例子tan β 100/50 2β 63.4°这是相当陡的坡度排水快但材料用量大。一般屋面坡度做到 25° 到 45° 之间比较常见对应 h/r 大约 0.47 到 1.0。5.3 包装和展示道具展开图就是刀模图棱锥形的包装结构在礼盒、化妆品盒、节日装饰里很常见原因很实在锥形在货架上辨识度高而且用料比同体积的方盒省。这类包装的展开图去掉粘接翼片、加上压痕线和模切线之后就是生产用的刀模图。三棱锥立牌放在桌面上的广告牌是个典型例子。它的展开图通常是扇形排布一条侧棱粘接底面留一条边做插舌或者直接粘死。设计时要注意的是包装用的纸板一般在 300 到 400 g比手工纸模厚得多折弯半径不能忽略。直角折痕在厚纸板上会爆线——外层纸面被拉裂露出里面的白色纸芯。解决办法是压痕线做成双线两条平行的压痕或者沿着折线做微小的打点处理让纸板有地方释放应力。还有一个包装特有的问题内装物的干涉。棱锥内部的空间是个上小下大的锥形很多人按底面尺寸设计内衬结果内衬的上半部分顶到侧面盖子盖不严。正确的做法是按棱锥在不同高度上的截面尺寸来设计内衬截面边长随高度线性收缩收缩率等于 (1 - z/h)其中 z 是距底面的高度。这个关系是线性的算起来很快。5.4 造型件灯罩、吸音扩散体、装饰构件棱锥阵列在声学处理里用得不少。锥形扩散体的原理是把入射声波在不同方向上的路径差打散让反射声不是集中回到一个方向而是均匀散开。单个棱锥的井深也就是棱锥的高 h决定了它能有效扩散的最低频率井深越大能作用的频率越低。做这类构件的展开图和纸模的逻辑完全一样只是材料换成了木饰面板、石膏或者发泡材料加工方式换成了 CNC 雕刻。纸模在这个流程里的角色是打样——先用纸做一个 1:5 的缩小模型摆在现场看效果、看比例确认之后再上真材料。这一步能省掉大量返工因为纸模做错一个损失的是半小时木饰面做错一个损失的是整块料。棱锥灯罩是另一个高频应用。做灯罩时展开图要多考虑一件事透光均匀性。棱锥的棱线处纸是双层的折过去自身重叠透光会明显暗一些形成一条条暗线。如果想要均匀的光斑可以在内侧贴一层薄描图纸做匀光或者把棱线设计成软棱——不折死折成圆弧过渡。后者的代价是展开图上的边长要重新算因为圆弧过渡会吃掉一部分长度通常每条棱要留出 1 到 2 mm 的补偿量具体多少跟纸厚和圆弧半径有关试两次就摸出来了。6. 用脚本批量生成展开图6.1 什么时候值得写代码做一两个模型CAD 或者手绘就够了。但下面这几种情况写脚本的收益很大需要试一系列不同高度、不同边数的方案做对比需要按不同比例批量出图比如同时出 1:1、1:2、1:5 三个版本需要把展开图直接输出成激光切割机能读的矢量文件。这三种情况的共同点是重复计算多、参数经常变正是脚本擅长的。写脚本的另一个好处是它强迫你把每个量的定义搞清楚。手算的时候容易糊弄过去代码里变量名写错一次运行结果就会明显不对反而帮你发现了概念上的混淆。6.2 计算和出图的关键几步核心思路很简单先算出 R、r、m、l、α然后把 n 个三角形按扇形排布生成坐标再补上底面多边形和翼片最后输出 SVG。下面是关键部分用 Python 写不依赖第三方库。import math def pyramid_net(n, a, h, tab_w6.0, tab_min2.0): R a / (2 * math.sin(math.pi / n)) # 底面外接圆半径 r a / (2 * math.tan(math.pi / n)) # 底面内切圆半径 m math.hypot(h, r) # 斜高 L math.hypot(h, R) # 侧棱 alpha 2 * math.asin(a / (2 * L)) # 侧面顶角弧度 # 扇形排布所有三角形共用顶点(0,0) tris [] for k in range(n): t1, t2 k * alpha, (k 1) * alpha p1 (L * math.cos(t1), L * math.sin(t1)) p2 (L * math.cos(t2), L * math.sin(t2)) tris.append(((0.0, 0.0), p1, p2)) return {R: R, r: r, m: m, L: L, alpha_deg: math.degrees(alpha), tris: tris}底面多边形的生成关键是确定它的朝向——必须贴在第一个三角形底边的外侧也就是远离顶点的那一侧def base_polygon(p1, p2, n, r): mx, my (p1[0] p2[0]) / 2, (p1[1] p2[1]) / 2 dx, dy p2[0] - p1[0], p2[1] - p1[1] ln math.hypot(dx, dy) nx, ny -dy / ln, dx / ln if nx * mx ny * my 0: # 翻转法向指向远离原点 nx, ny -nx, -ny cx, cy mx nx * r, my ny * r a0 math.atan2(p1[1] - cy, p1[0] - cx) Rv math.hypot(p1[0] - cx, p1[1] - cy) return [(cx Rv * math.cos(a0 2 * math.pi * k / n), cy Rv * math.sin(a0 2 * math.pi * k / n)) for k in range(n)]这里有个小陷阱a0 必须从 p1 起算而不是任意起点否则生成的多边形虽然形状对但顶点顺序和三角形的底边对不上翼片会贴错位置。判断对不对的方法很直观——把生成的坐标画出来看底面是否严丝合缝地接在三角形底边上。输出 SVG 时把 width 和 height 直接写成毫米并带上 viewBox这样大多数切割软件和打印驱动都能正确识别尺寸def to_svg(polys, path, pad10.0): xs [p[0] for poly in polys for p in poly] ys [p[1] for poly in polys for p in poly] x0, y0 min(xs) - pad, min(ys) - pad w, h max(xs) - min(xs) 2 * pad, max(ys) - min(ys) 2 * pad with open(path, w, encodingutf-8) as f: f.write(fsvg xmlnshttp://www.w3.org/2000/svg fwidth{w:.2f}mm height{h:.2f}mm fviewBox{x0:.2f} {y0:.2f} {w:.2f} {h:.2f}\n) for poly in polys: pts .join(f{x:.2f},{y:.2f} for x, y in poly) f.write(f polygon points{pts} fillnone fstrokeblack stroke-width0.3/\n) f.write(/svg\n)翼片用同样的思路生成沿需要粘接的那条边向内侧偏移 tab_w两端各收窄一点。最简单的实现是构造一个梯形多边形靠边的一端宽度取 tab_w靠端点的一端宽度取 tab_min。6.3 输出给切割机之前要知道的三件事第一线宽有实际意义。激光切割软件通常按颜色或者图层区分切割线和雕刻线0.1 mm 的红线切透0.3 mm 的黑线只刻不切。如果你的展开图上折痕线和轮廓线一个颜色机器会把折痕也切穿模型就散架了。出图时一定要把两类线分层。第二切割缝宽要补偿。激光有 0.1 到 0.2 mm 的切缝切出来的件会比图纸小一圈。做小尺寸模型时这个误差可以忽略做拼装结构榫卯时必须补偿通常的做法是在轮廓上整体外扩半个缝宽。纸模用刀手工裁的话这个补偿不用做但要注意刀刃要垂直斜着切会让上下表面的尺寸不一致。第三排版留间距。切割件之间至少留 3 mm 间距太近了热影响区会连在一起边缘发黄。如果材料是亚克力间距还要更大一些因为热量积累会让边缘融化。7. 做砸了之后怎么查7.1 顶端裂开或者鼓包顶端合不拢最常见的原因是侧面顶角算小了。检验方法很简单把 n 个三角形的顶角加起来用 360° 减去这个和得到缺口角。如果缺口角明显小于理论值说明 α 算错了。回想一下是不是用了棱锥的高 h 去代替斜高 m 算顶角——这是最高频的错误因为 h 这个数在题目里最先给出来手一滑就用上了。如果缺口角对但顶端还是鼓包那问题出在翼片。矩形翼片在顶点处堆叠是硬伤换成梯形翼片或者干脆在顶点附近 5 mm 范围内把翼片完全剪掉用一小块补强纸从内侧贴住效果比硬折好得多。这个技巧我在做很尖的锥体nα 小于 150°时必用成功率明显高于纯靠翼片粘接。7.2 底面翘曲、四角不平底面不平八成是折痕没压实。侧棱的折痕如果没有折到底纸会保持一个回弹角n 条回弹角累积起来底面就被拉着往上翘。检查方法把模型扣在桌面上从侧面看四个角是否都接触桌面。如果有角悬空找到靠近这个角的那条棱用骨笔重新压一遍压实到位。另一种可能是粘接顺序造成的应力。如果所有缝都粘完了再想调整已经晚了。所以粘接时要在胶水半干的状态下做一次整平——把模型放在平板上用手掌轻轻压住压到全干。白乳胶的开放时间大约 10 到 15 分钟这段时间内都还能微调。还有一个不太常见但确实存在的原因纸的含水率。纸受潮会膨胀干燥会收缩而且不同方向收缩率不一样。如果展开图是刚打印出来的喷墨打印机会让纸吸水立刻剪下来做等它干了之后尺寸会变。稳妥的做法是打印完放平压几个小时或者用重物压一夜让纸的含水率稳定下来再动手。7.3 侧面扭转、棱线不竖直把模型立在桌上从正上方往下看如果发现棱线不是从底面顶点垂直往上走而是斜着的那说明底面多边形的朝向错了。这种情况在扇形排布里最容易发生因为底面是贴在侧面底边上的如果底面的旋转起点没找准整个底面会绕着自己的中心转一个角度粘上去之后棱线就对不齐。判断方法量一下底面某条边与它对应侧面底边的重合度。如果两条线完全重合方向就是对的如果成一个角度那就是上面这个问题。改法很简单生成底面坐标时起点必须严格取侧面底边的两个端点不能自己另选。如果方向对但整体还是歪的检查一下是不是每条侧棱的折痕都折到了同一个角度。人的手很难做到完全一致差个两三度在单个面看不出来几个面加起来就明显了。这种情况下用硬模板辅助会好很多——找一块硬卡纸切出侧面顶角的形状折每条棱的时候把模板卡在中间强制角度一致。7.4 一个五分钟的自检流程养成出图之后、动手之前的自检习惯能省掉大量返工。检查项判定标准不合格的后果nα 之和明显小于 360°差值即缺口角等于 360° 说明算成了平面斜高 m大于棱锥高 h等于或小于 h 说明公式用错侧棱 l大于斜高 m反过来说明 R、r 用混了侧面积底面周长×m÷2与逐面相加的结果应一致打印标尺实测 100 mm偏差超过 0.5 mm 需重打折痕方向山折在背面压痕压反了棱线会变圆这个表里的前四项其实是对同一套公式的四个交叉验证。四个量互相之间的关系是死的任何一个算错都会在另外几项上露馅。我自己的习惯是出图前扫一眼这四个数十秒钟比事后拆一个做废的模型划算太多。最后一件事关于练手顺序。三棱锥、四棱锥、六棱锥这三个如果只做一个选六棱锥——外接圆半径等于边长计算几乎不出错粘缝数量适中做出来的成品也好看。四棱锥看着简单实际上因为侧面顶角大、缺口也大顶端收口的难度反而最高不建议作为第一个。三棱锥最尖顶点处的材料最少稍微用力就破适合已经做过一两个、手上有点感觉之后再去挑战。