很多人第一次在 SolidWorks 草图里点开正多边形命令,都是被"六角螺母画不出来"逼的。我当年也是——明明量好了对边距离,按数值一填,画出来卡尺一量差了将近一个毫米,图纸交出去被退回来才发现选错了圆。正多边形这个命令表面只有几个参数,但它背后牵扯的是内切圆、外接圆两套完全不同的几何定义,还牵扯草图约束的完整性、后续特征和工程图输出。这篇就把这个命令从几何本质到实操细节一次性讲透:它适合哪些人看?刚上手的三维建模新手能学会正确输入参数,用过一两年但总在标准件和孔板上翻车的人能搞清楚为什么错,做成套结构件的朋友能拿走几套复用的思路。
1. 正多边形命令的几何定位:它其实在替你下约束
1.1 一行参数背后是三组几何关系
在 SolidWorks 草图工具里点正多边形,界面上能操作的只有三样东西:边数、内切圆或外接圆这个单选、以及鼠标拖出来的大小与角度。看起来简陋,实际上你按下确定的那一刻,软件已经自动往草图里塞进了三组东西,理解这三组东西比记住按钮位置重要得多。
第一组是几何关系。多边形的各条边会自动带上相等关系,所有顶点在隐式意义上是共圆的,这是正多边形的定义性约束,软件不需要你手动加。第二组是一个构造圆,它会以虚线形式留在草图里,位置就是多边形内切或者外接的那个圆,圆心与多边形中心重合。第三组是一个尺寸,如果你在命令属性里勾了"添加尺寸"(默认是勾上的),软件会自动标一个直径或半径尺寸,这就是你后面能双击修改大小的入口。
这三组东西的分工非常清晰:几何关系保证"它永远是正多边形",构造圆提供"参考骨架",尺寸提供"驱动数值"。很多人后面改图纸改到崩溃,就是因为动过这三样中的某一样——比如顺手把构造圆删了,或者把相等关系清掉了,多边形就退化成了一堆散乱的线段,看着还是那个形状,实际已经不受控。
我特别想强调构造圆这一点。正多边形命令留下的那个虚线圆不是冗余物,它是整张草图最有价值的参考基准。你后面要在这个六边形周围布螺栓孔,那个圆就是现成的分布圆;你要做扇形剪裁,那个圆就是现成的剪裁边界;你要给整体加一个同心约束,抓那个圆比抓六个顶点省事一百倍。养成"不要删构造圆"的习惯,会省掉大量返工。
1.2 内切圆与外接圆:两个长度,一套公式
这两个选项的区别,用一句话概括就是:内切圆的半径量到边的中点,外接圆的半径量到顶点。前者对应的是"边心距",后者对应的是"中心到角的距离"。同样输入 50,选内切圆画出来的形状比选外接圆画出来要小一圈,因为顶点被推到了 50 以外。
设正 n 边形外接圆半径为 R、内切圆半径为 r、边长为 a,三者的关系是高中几何就能推出来的:
- r = R · cos(180°/n)
- a = 2R · sin(180°/n) = 2r · tan(180°/n)
把常用边数代进去算一遍,比记公式更有用。下面这张表是我自己存在笔记里的,画图前扫一眼能省掉按计算器的时间:
| 边数 n | 外接半径 R | 内切半径 r | 边长 a | 特点 |
|---|---|---|---|---|
| 3 | 50 | 25.000 | 86.603 | 内切圆半径正好是外接圆的一半 |
| 4 | 50 | 35.355 | 70.711 | a = 2r,正方形边长等于内切圆直径 |
| 5 | 50 | 40.451 | 58.779 | 边数少,角度影响明显 |
| 6 | 50 | 43.301 | 50.000 | 六边形边长恰好等于外接圆半径 |
| 8 | 50 | 46.194 | 38.268 | 接近圆,内外半径差只有 7.6% |
| 12 | 50 | 48.297 | 25.882 | 内外半径差不到 3.5% |
正六边形那一行值得单独拎出来说:边长恰好等于外接圆半径,这是六边形独有的巧合。你画六角头螺栓、六角螺母、六角棒料、蜂窝结构,只要脑子里记住"对边距离 = 2r,对角距离 = 2R = 2a",基本不会算错。反过来说,如果你拿游标卡尺量一个六角螺母,量出来的对边距离就是内切圆直径,不是外接圆直径——这一步搞反了,形状会小 15.5%,肉眼几乎看不出来,装到扳手上才露馅。
2. 两种模式的实操分歧与最常见的三种误用
2.1 数值给错方向,比画错形状更难发现
形状画歪了,你自己一眼就能看出别扭。数值给错方向,反而更难发现,因为图形本身还是个规规矩矩的正多边形,比例也对,就是整体尺寸不对。这种错误在装配阶段才暴露的概率极高,而且往往不是一个人返工,是整条下游链条一起返工。
我见过最典型的一次,是给一批六角隔离柱做底座孔位。设计的人按对角距离算的数值,直接填进了外接圆模式,几何上没错,形状对,但底座孔开成了对角尺寸,隔离柱装上去晃晃悠悠,间隙肉眼可见。后来复盘,问题不在于他算错了,而在于判断"该用哪个圆"的时候没有回到工艺语言上去对。
我的处理办法很朴素:画之前先问自己一句"图上给的这个数,用卡尺量的是哪两个面之间的距离"。量的如果是两个平行的面,那就是对边距离,走内切圆;量的如果是两个对角的顶点,那就是对角距离,走外接圆。机械图纸、标准件手册、五金件选型表上,绝大多数六角件的规格标注都是对边距离,因为这才是扳手咬合的那两个面。
顺便说一句,判断"走哪个圆"还有一个更快的土办法:想想装配时是什么东西贴上去。扳手贴的是面,走内切圆;一个圆锥销插在角上、一根轴穿过中心去顶顶点,走外接圆。装配关系决定了参考基准,这个思路比背公式靠得住。
2.2 什么时候必须用外接圆
内切圆在标准件场景里用得更多,这不代表外接圆就该被冷落。有几类场景是外接圆的主场,用错了反而更麻烦。
第一种是阵列分布。你要在六边形的六个顶点上各放一个孔,最省事的做法就是用外接圆模式,让顶点正好落在构造圆上,然后把孔约束到这个圆上。如果用内切圆模式,顶点不在圆上,你就得另想办法定位,或者自己算坐标。
第二种是多边形与圆相切、相贯的过渡结构。比如一个八边形转圆形的过渡段,八边形的顶点需要跟外圆对齐做扫掠引导线,这时候顶点就是关键控制点。
第三种是视觉比例判断。做外观件、装饰件、工业设计打样的时候,图纸上给的是"这个六边形看起来多大",客户看的是外包络,那用外接圆更贴近感受。这种场合不必死抠几何定义,哪个能对上客户的视觉预期用哪个。
判断标准其实可以压缩成一句话:关键控制点在边中点上,选内切圆;关键控制点在顶点上,选外接圆。
2.3 事后改模式:没有这个按钮,只能重建
这一条是我踩过坑之后才记住的:正多边形画完之后,属性里没有"切换内切/外接圆"的开关,也没有改边数的入口。你画了个六边形,客户通知改八边形,除了删掉重画,没有优雅方案。
更麻烦的是模式切换。有些朋友以为改一下尺寸数值就能等效替换——比如发现选错了,把 50 改成 57.735 想凑出内切 50 的效果。几何上确实是等价的,但草图的尺寸标注还挂在原来那个圆上,后面别人接手改图的时候,看到的是一个莫名其妙的 57.735,没人知道这个怪数字哪来的,也就没人敢动。这种做法短期能救急,长期是给团队埋雷。
我的做法是,一旦发现模式选错,不要犹豫,删掉重画,代价是三十秒。重画的时候顺手把构造圆和外圈关系一起加好,比打补丁干净。如果这个多边形已经被下游特征引用了,删之前先看一眼特征树,确认哪些特征依赖它,重画后用"转换实体引用"把轮廓重新接上。
还有一个坑藏在边数上:SolidWorks 草图多边形命令支持的边数有上下限,画到几十条边的时候会出现"看着像圆但其实是多边形"的情况。这种情况直接用圆命令就好,不要用多边形硬凑,工程图里多边形的每个顶点都会生成一个端点,转成 DXF 之后文件会变臃肿,数控那边读起来也慢。
3. 从空白草图到完全定义:一块六孔法兰板的完整推演
下面这段拿一块最常见的六角安装板走一遍,边做边讲每一步为什么这么做。这块板的场景是:中心一个正六边形外轮廓,六个顶点各一个安装孔,中心一个通孔,板厚 6,对边距离 100。整块板需要完全定义,且后续要能改对边距离而不破坏孔位关系。
3.1 定位顺序:先定中心,再定骨架,最后画实体
新手最容易犯的顺序错误是"先画多边形,画完再找地方放"。正确顺序反过来:先在草图原点附近落一个点,把它约束到原点,这一步是整个草图的锚。锚定在原点上的好处是,后续任何尺寸改动都会围绕原点重新分布,不会整体漂移。
然后画一个构造圆,圆心与刚才那个点重合,直径先随手给个大致值。这个圆就是骨架,后面所有东西都长在它上面。
最后才调正多边形命令。点命令之后先别急着拖,先把属性面板里的边数改成 6,模式选内切圆,然后光标移到原点附近,软件会自动捕捉到原点并显示重合提示——这一下很关键,它让多边形的中心与原点自动建立重合关系,省掉一个约束。点下去之后向外拖,方向拖到大致让一条边水平,大小随意,松开。
这一步做完,特征树的草图里应该有这几样东西:一个重合于原点的点、一个构造圆、一个带尺寸的正六边形。此时草图状态是"欠定义",正常,别慌。
3.2 用关系把方向锁死,而不是靠角度尺寸硬堆
正多边形的旋转自由度是最容易漏掉的一个自由度。软件自动给你加了一个大小尺寸,中心点也定位了,看起来挺完整,但如果你不加任何方向约束,它仍然可以绕中心转任意角度,状态栏会告诉你还欠定义。
处理方向有两种办法。一是标一个角度尺寸,比如让某条边与水平线成 30°,好处是数值明确,坏处是多一个需要维护的尺寸。二是直接给底边加一个"水平"关系,好处是免费、直观、改尺寸的时候不会跳。
我几乎永远选第二种。给底边加水平关系之后,六边形的方向就彻底固定了,而且这个关系在边数变化后依然有效(改成八边形,底边还是水平的,两边各斜出去一条)。这个细节在需要画多种多边形的时候特别省事。
加水平关系之后再看状态栏。如果这时候显示"完全定义",那这块板就锁住了。如果没有,八成是构造圆还带着自由度,选中它加个固定关系或者把它约束到原点上,问题就解决了。
这里有个容易被忽略的点值得展开说说:构造圆本身的自由度。正多边形创建时生成的构造圆,圆心和多边形中心同点,但圆的半径是被多边形尺寸间接驱动的,很多版本里它并不显示为欠定义。如果你后面手动又加了一个构造圆,两个圆叠在一起,谁的尺寸驱动谁就说不清楚了,画面上看起来是一个圆,实际是两个重合的圆在打架。我的规矩是:一块草图里同一个位置只留一个构造圆,用正多边形自带的那一个,不要另外补。
3.3 参数化收尾:把对边距离做成能改的量
前面说了要能改对边距离而不破坏孔位。做法是把尺寸和外轮廓的关系绑在一起,而不是各自独立。
具体操作:双击多边形那个自动生成的尺寸,把它改成 100(内切圆模式下这个尺寸就是内切圆直径,也就是对边距离)。然后选中该尺寸,在属性里给它起个名字,比如叫"对边距"。接着在工具菜单里打开方程式,新建一条,让安装孔的分布圆直径等于这个"对边距"加上一个偏置量(比如板边留 18 的边距,孔分布圆直径就是 100 - 36 = 64)。
这样一来,以后客户说改到 120,你只改一个数值,外轮廓和孔位一起跟着变,孔到边的边距保持不变。这才是参数化的真正价值——不是把模型做成能变,而是把变化的规律做进模型里。
方程式这条路上的第一个坑是单位。SolidWorks 的方程式里数值是有单位的,写"100"和写"100mm"在部分场景下表现不同,我遇到过角度方程因为单位不一致算出来是弧度的情况。稳妥做法是所有长度类方程式显式带单位,别偷懒。
第二个坑是孔位如果用了阵列,方程驱动的是阵列的参考圆,那个圆的尺寸可能藏在阵列特征里而不是草图里。定位方法是在特征树里右键显示尺寸,把需要的尺寸勾出来直接引用,别手动敲。
3.4 一个更省事的替代方案:块
如果你要画的不是一块板,而是几十个规格的同类产品,块比方程式更合适。
做法是把整块已经完全定义的六边形板(含孔位)选中,插入→块→制作,把所有尺寸暴露成块的属性,然后另存到设计库里。以后新项目直接拖出来,在块的属性表里填对边距离和边距,形状自动生成。
块方案的代价是灵活度低——块里不方便再加减几何,改结构就得编辑块定义。但如果你做的是标准件、常用件、系列件,这个代价值得付。我自己做六角垫片、六角隔离柱这类东西,都是块开路的,一年省下来的重复劳动相当可观。
4. 排查链路:正多边形草图里六种翻车现场
4.1 拖不动的多边形:先分清过约束和欠约束
现象是:想拖动多边形换个位置,拖不动,或者拖动的时候整个草图炸开一片红。
处理链路是这样的。第一步看状态栏,是"完全定义"还是"过定义"。完全定义拖不动是正常的,那是你自己锁的。过定义会明确报出来,这时候打开"显示/删除几何关系",看哪个关系变成红色或黄色,逐条排查。第二步看是不是有多余的尺寸——最常见的过定义原因是同时标了内切圆直径和边长,这两个是冗余的,删掉一个就好。第三步看是不是有多重定位,比如中心点既与原点重合,又被两个方向的尺寸钉住,三者打架。
欠约束的情况反过来,拖得动但有隐患。判断方法是看状态栏文字,欠定义会明确显示还有几个自由度。这时候不用猜,直接拖动你怀疑的那个自由度,看它往哪跑,跑的方向就是缺约束的方向,顺着补一条关系就搞定。
4.2 拉伸之后量出来尺寸不对:八成是把内切当外接用了
这个坑我前面提过,这里说排查路径,因为它的表现很有迷惑性——模型看起来完全正常,只有测量的时候才露馅。
排查第一步:回到草图,选中多边形那个尺寸,看它标注的是哪个圆。如果是内切圆模式,尺寸引线会指到边的中点;外接圆模式下引线指到顶点。看不清就把构造圆显示出来,尺寸标注的对象一目了然。
排查第二步:算一遍理论值。外接圆模式 R=50 时,六边形对边距离应该是 2×43.301=86.603。如果你量出来是 100,说明你想要的其实是内切 100,那就是选错模式了。
排查第三步:确认改法。别用改数值凑的方式打补丁,直接回草图删掉多边形重画,把模式选对。重画之后记得把方向关系和尺寸名重新挂好,不然方程式会断链。
4.3 镜像或阵列之后多边形变形
在多边形上做镜像,结果镜像出来的那一半尺寸对不上,或者整个形状扭了。
原因通常是镜像轴选得不对,或者原始多边形本身还欠约束。如果原多边形能绕中心自由转动,镜像之后两半各自有各自的转动自由度,组合起来就是一副歪掉的图案。
处理顺序:先把原多边形彻底锁死(水平关系 + 尺寸 + 中心定位),再做镜像。做镜像时镜像轴选择穿过中心的那条构造线,不要随手选一条边。镜像完成后检查特征树里镜像关系是否带上了"对称"标记,没有标记说明它只是复制了几何,没有建立关系,后面原多边形一改它就脱钩。
阵列同理,而且阵列更隐蔽:圆周阵列的实例如果不跟随原对象变化,改尺寸之后会出现"第一个变了其他没变"的情况。检查办法是改一次原尺寸,看阵列实例有没有跟着动。不动就说明阵列的参考被断开了,通常是因为阵列的时候勾了"等间距"却又手动改过实例。
4.4 转工程图或 DXF 之后圆不见了
这是预期行为,不是 bug。正多边形命令产生的构造圆是构造线,构造线不参与实体轮廓,导出 DXF 或者投影到工程图视图里,默认是不输出的。
如果你确实需要那个圆出现在工程图里(比如作为分布圆、节圆标记),有两个办法。一是把构造圆改成普通实体线,画工程图的时候它会跟着出;二是直接在工程图里手动画一个圆,标注成参考尺寸。第一种办法会让草图变得不干净(多了一条不该参与拉伸的线),我更倾向第二种,或者干脆在工程图里用一个圆的注释说明代替。
顺带说一句,正多边形导出 DXF 后会变成若干条直线段,不是一条闭合的样条,这是正常的。数控那边读进去按线段走刀,切割效果没问题。但如果你要做的多边形边数很多(比如二十几条边),线段数量会明显增加,文件体积也上去了,这种情况用圆或者圆弧替代会更合适。
4.5 设计库复用时的引用错乱
把带正多边形的草图存进设计库,插到新零件里之后,尺寸变成黑色(不驱动),改也改不动。
原因是设计库特征默认可能带外部参考,或者插入的时候选了"断开链接"。处理办法是插入时留意选项面板里关于外部参考的那几个勾,需要跟着变的时候保持链接,需要彻底独立的时候断开并重新标注。
我的习惯是:系列件用块并显式暴露参数,一次性零件用设计库但插入后立刻检查尺寸颜色。尺寸能不能改,看颜色就知道——能驱动的尺寸是特定的颜色,从属的尺寸是灰色或者带括号的,一眼能分辨。
4.6 小数点与显示精度
最后这个是小儿科但真出过事。草图画的是 43.301,工程图上显示成 43.3,加工那边按 43.3 做,六个角累积误差能到零点几毫米。
解决办法是文件属性里把尺寸显示的小数位数调够,或者干脆用分数、用带公差的标注。我的标准是:所有与配合相关的尺寸,显示位数至少比加工精度多一位,别让加工方去猜。
5. 让正多边形真正省事的几个进阶用法
5.1 构造圆当骨架,把多边形变成"壳"
画多边形的思路可以从"画一个形状"升级成"搭一套骨架"。具体做法是:先画中心点、再画构造圆、再画多边形、最后在构造圆上布孔。这套骨架的好处是改起来只动一个地方。
举个实际例子。做一块六角形的散热底壳,六个角上要开安装孔,中间要开一个大圆孔。骨架搭法是这样的:中心点锚定原点,正六边形用内切圆模式,尺寸给对边距离 120,这会在中心留下一个半径 60 的构造圆。中间的大孔不要另画,直接把构造圆转成实体线,然后向内偏移一个壁厚,得到内孔轮廓。六个角上的安装孔,用外接圆做参考——虽然多边形是用内切圆画的,但外接圆的位置可以由内切圆半径算出,或者在画完多边形之后手动补一个构造圆约束到顶点上。
这套做法的价值在改尺寸的时候体现得最明显。客户说壁厚从 4 改成 6,你把偏移量一改,整个内孔跟着缩,六角轮廓和孔位纹丝不动。要是当初是六个独立孔位分散画的,这一改就得到处补尺寸。
5.2 与转换实体引用、剪裁的配合
正多边形加上转换实体引用,能做出很多省事的结构。
比如在一个方形板上挖一个六角形沉孔。做法是在板上草图画一个多边形,尺寸定好,然后退出草图用拉伸切除。如果这个六角孔要跟另一个零件上的六角凸台配合,就在另一个零件的草图里用转换实体引用把六角轮廓引过来,这样两个零件的轮廓永远一致。
再比如用多边形做阵列的分界。把一个圆形板按八等分切成八块,做法是在板上画一个八边形,用它的边做剪裁边界,一条边一条边地切。这个用法比画八条直线省事,因为八边形的几何关系是自带的,改边数的时候半径不用重算。
剪裁这里有个细节:用多边形边做剪裁工具时,剪裁的延伸方向取决于你点的是哪一侧。如果剪出来发现方向反了,撤销回去重新点另一边,不要试图用移动实体来补救。
5.3 钣金与切割场景下的工艺补正
正多边形直接拿去激光切割或者钣金折弯,有两处需要提前处理。
第一处是尖角。正多边形的顶角在切割时会产生热集中,薄板容易烧尖,厚板会留下明显的圆角。工程上的通行做法是在图纸上把尖角倒一个小圆角,半径一般给 0.5 到 1,具体看材料和板厚。在 SolidWorks 里可以在草图阶段就用草图圆角处理,也可以留到特征阶段用圆角特征,我的习惯是留到特征阶段——草图保持几何纯粹,工艺特征放在特征树里更清晰。
第二处是折弯与多边形边的相对位置。如果多边形的某条边正好落在折弯线上,折弯之后这条边会变形,实际边长会比理论值短。这种情况需要把折弯系数考虑进去,或者干脆调整多边形的朝向,让折弯线避开边线。
5.4 一个我常用的检查清单
画完任何带正多边形的草图,我基本会走一遍这个清单,五秒钟的事:
| 检查项 | 怎么看 | 出问题的表现 |
|---|---|---|
| 模式对不对 | 尺寸引线指边中点还是顶点 | 拉伸后量出来差 15% |
| 方向锁没锁 | 状态栏是否"完全定义" | 拖一下会转,改尺寸后歪 |
| 构造圆在不在 | 草图里有没有那个虚线圆 | 后续布孔没基准,得重画 |
| 尺寸有没有命名 | 方程式里能不能引用 | 参数化做不下去 |
| 中心对不对 | 有没有重合于原点或关键基准 | 改尺寸后整体漂移 |
| 边数合不合适 | 超出 20 边考虑改用圆 | DXF 文件臃肿 |
6. 几条踩出来的硬经验
正多边形这个命令,我用了这么多年,真正的难点从来不是"怎么画",而是"什么时候画"和"画完怎么让它听话"。说几条最实在的。
第一条,永远先想装配,再想形状。你画的是对边距离还是对角距离,不是几何问题,是工艺问题。想清楚什么东西贴上去、什么工具去拧、什么量具去量,答案就出来了。
第二条,尺寸名是一个被严重低估的东西。我刚工作时觉得给尺寸起名字是多余动作,后来做参数化系列件,所有的方程式、配置、设计表都靠这个名字定位,那一刻才明白名字不是给人看的,是给模型自己看的。养成习惯,会变的尺寸都命名。
第三条,构造圆别删。这可能是本文最朴素但最有用的一条。删掉它只要按一下 Delete,重建它得重新算半径、重新对圆心,还得重新挂约束,完全不划算。
第四条,改边数就重画,别硬扛。软件里没有优雅的改边数方案,硬凑出来的模型会留下一堆解释不清的怪数值,下一个接手的人会骂人。
最后分享一个我最近才用顺的小技巧:如果一批零件只是对边距离不同、形状完全一样,与其做几十个配置,不如把多边形那一个尺寸做成全局变量,然后在零件模板里放一张链接到全局变量的设计表。新规格来了,在设计表里加一行,零件自动多一个配置,模型本身一个都不用改。这套做法在标准件库里特别顺手,前期搭的时候花点时间,后面每次加规格就是几十秒的事。