SW - 增加导出STL数据中的三角面数,增加别人逆向建模的难度
文章目录
- SW - 增加导出STL数据中的三角面数,增加别人逆向建模的难度
- 概述
- 笔记
- SW版本
- 导出时,选择STL的导出选项
- 默认导出(精细)
- 导出粗糙
- 自定义导出 - 将误差和角度改为最大
- 自定义导出 - 将误差,角度,三角面数改为最大
- 备注
- 这几天的感想
- 关于我不参考人家零件,自己能否做出来的问题
- 关于有人PUA你怎么办
- END
SW - 增加导出STL数据中的三角面数,增加别人逆向建模的难度
概述
用meshLab导入了一个STL(30MB), 看到顶点数和三角面的数量特别的多。
三角形数量已经超过了50W个,将这个STL导入solidworks中,已经无法按照实体打开了,如果按照其他格式打开,只能看不能编辑,整个模型都没有特征,不管点击模型的哪里,都是选择整个实体。
如果自己想从这个模型修改一个版本出来,只能是将这个模型进行3D打印,然后结合测量的数据,自己重新新建零件。
如果人家没有模型文件,只有实物,那么也可以结合测绘的结果和自己的想法,做出自己想要的东西。
不过,给导出的STL增加顶点数和三角形面数,确实给逆向建模增加了一点困难。
本来就是个开源的小东西,不分享step文件就算了,连STL都做了手脚,是不是玩不起啊。
模型本身打印出来体积并不大。且这个类似体积的STL模型,我自己也导出打印过。没这么大的文件体积。
有点好奇,作者做了啥处理?
那通过实验,我也学学。
一般国内的机械零件的3D建模(CNC, 3D打印)的业余用户,用的都是solidworks. 如果是从零件导出STL, 唯一可做的就是导出STL时的选项。
那做个实验看看,到底修改啥STL导出选项,可以达到这个效果。
笔记
从另外一个同体积(3D打印出来的体积)量级的开源STL(1.5MB), 正常导入SW, 进行特征识别,复原了一个零件。
那么拿这个零件,进行STL导出,看看和不能正常导入进行特征识别的STL的三角面数有啥区别。
SW版本
SW2025SP0
导出时,选择STL的导出选项
默认导出(精细)
默认的导出选项是"精细",没啥可选的。导出看看。
导出的文件体积为 1.52 MB (1,596,084 字节)
导出粗糙
粗糙导出时,也是不能选参数,只是所有的值都在滑杆的最左边。
可以看到三角面的数量和文件大小,并没有变。和精细导出时相同。
导出的文件大小为 1.52 MB (1,596,084 字节)
自定义导出 - 将误差和角度改为最大
自定义导出时,值是能改的,但是值是有范围的(被滑杆的最大值限制住),那么我们直接将滑杆的值拉大最大就行了。
为了逐步实验,得到细节,这步,先只选误差和角度最大,不去动面数。
可以看到三角面的数量和文件大小,并没有变。和精细导出时相同。
导出的文件大小为 1.52 MB (1,596,084 字节)
自定义导出 - 将误差,角度,三角面数改为最大
将面数的滑杆拉到最右边(最大)时,发现三角面的体积比默认的三角面小了166倍。
导出
可以看到,三角面已经上升到了60W。文件size也到达了30MB.
文件体积为 29.5 MB (30,953,984 字节)
现在用meshLab看看case_自定义_最大_误差_角度_面数.STL和那个做了手脚的STL文件有啥不同。
可以看到,将三角面数改为最大后,导出的STL和那个做过手脚的STL基本是一致的。因为模型内容不一样,所以文件size稍微有点不同。
现在用meshLab看一下自己导出的case_自定义_最大_误差_角度_面数.STL的顶点数和三角形面数的信息。
再对比一下,那个做了手脚的STL
可以看到,顶点数和三角形面数都是一个数量级的,且数据差别不大。
现在可以确定,那个做了手脚的STL,就是用SW做的,且导出选项中,将面数改为了最大。
备注
如果将STL做了手脚,让小白无法将STL导入SW进行特征识别,从而达到不能用软件自动复原零件的作用。
但是这样没用啊,以前没有软件的时候,机械设备的仿制,都是工程师自己测绘的,然后结合工程师本身的技能,就能将设备仿制出来。
这样做(STL增加了面数),只能是增加了人家复原的难度。
但是人家可以将STL打印出来,手工测绘感兴趣的部分,然后结合自己的想法将东西搞出来,会搞得更适合自己的应用。
如果你想开源,就直接放step文件,或者其他能直接编辑的模型。
如果人家想改进你的模型,只要你放出来(不管能否编辑),人家总能用最朴素的方法来复原和改进。
如果你玩不起(或者你放的模型是你产品上的东西),你就别开源,别让人家看到实物(无论是模型还是产品,只要是人家看的见,摸的着的东西)。
这几天的感想
这几天在做一套小零件,看到人家设备上有。求朋友帮我买一套。但是这个朋友真实称(完全是工程师的性格),直接告诉老板是我要买。
结果人家老板直接给我打电话,有2件事要和我聊。
- 招安我。
1.1 我现在是王八吃秤砣的状态,绝对不可能给别人再打工的。我婉拒。
1.2 他提出要和我合作,让我做项目,项目做完后,给我结算项目的钱。这个也不可能的,也是婉拒。
因为我知道啥是项目。项目本身可能是个产品,但是对于做项目的人来说,是一锤子买卖,做完项目,甲方给你项目费用(做项目本身的花费. e.g. 人工,水电,材料费,实验费用,可能还有一点老板恩赐的打赏)。这个项目本身产生的后续收益,和做项目的人没半毛钱关系。
而我要做的是自己的产品,不管产品大小,只要精心做出来有需求的东西(自己用起来好用,有需求的人看见就想买),不管卖的快慢。只要是别人会需要的东西(e.g. 市场买菜的小贩),人家家里没菜了,需要做菜,自然会在菜市场买菜,至于是谁卖,人家不关心。客户只关心产品质量,价格,服务。所以,只要做出产品,就会持续的有后续收入。这才是我要的。
1.3 他在描述他自己公司的前景,增加招安我的可能性。我不关心的,公司见多了,和我没啥关系。关键我现在是不可能给人打工的,自己具有同样的能力,为我自己做事爽不爽啊。我现在是要自己做产品,而不是给他人做嫁衣。
1.4 他一开始和我通电话,就问我技术水平方面的事情(e.g. java和python水准如何),我有点震惊(毕竟我只是想买个参考用的零件)。我主要是搞C++的,其他任何语言的软件,维护是没问题的(从头开发,可能不行,这个搞技术的都懂)。他是看我的技能和他的产品方向比较贴近,才想招安我。但是问一个铁了心的人,人家不会去打工。
另外,如果是真的想找人做事,也是从正规平台(招聘平台,硬件技术群)上去招人,这种私下招人,一般都不可能是理想的人选(除非是确切的知道人家想换工作,且技术水平适合你要招的公司岗位).
1.5. 说到打工需要的技能和自己做产品需要的技能还真是差好多。
e.g. 我现在的技能(软件,硬件,机械,电子),如果是自己做产品,技能都不缺啊,如果真是有啥刚需的技能暂时自己不会(无论这个技能是啥,只要不是前沿的技术领域(资料不好找,资料特别的少)),现在时间都是自己的,互联网信息这么发达, 学上3个月绝对能搞到做自己产品的水平(这是被验证过的真理)。学习的路径为(领域经典书籍,网上零散的文章,自己大量的实验,如果是开源的工程或者很好的商业软件,还有很好的官方文档可以查阅学习)。
无论是谁,你打工肯定是在多家公司工作过。在每一家公司,只要你不是大牛(谁最开始也是从小白开始),你干的就是螺丝钉的工作。那么你换下一份工作时,换到哪家公司,做什么工作,这些都是命运在推动你随波逐流,所有你能认识的人,都是缘分(命运在推动你,而不是你的主动选择,你也选择不了)。并不是你自己能选择的(即使你有点NB, 也不是你自己能完全选择的)。
那么你的老板(主动找你的人,或者你被动的找工作找到的公司),对你提出的技能要求,并不一定是你擅长的(或者说这些技能如果你会的话,自己做产品足够用,但是你给别人打工用这些技能,那么你的技能水平还要提高一个层次才能符合岗位要求)。我有这能力,我自己做产品多爽啊,我为啥要去打工。 - 同意卖给我那个零件
不是钱不钱的问题,人家肯卖给我(以正常价格或者高一些的价格都行),我就很感谢了。但是人家下面一句话"我们这个零件是产品上用的,不要外传"。话说到这,我也是实话实说,“我是当作产品来做这个零件的,做好用了,会自己卖,我还是别从您那里拿了”
到这里,通过结束。
关于我不参考人家零件,自己能否做出来的问题
因为这个零件都是从开源的大牛的原始图纸改出来的,不论你咋改,原理都差不多。
甚至说,你没有开源大牛的原始图,你自己琢磨,经过多版零件迭代试错后,这个零件的原理也和大牛开源的差不多。
但是我看开源大牛的图纸后,我立马发现了一个不合理的地方,看了图纸,就有改进的想法。
那么我如果从那个老板那拿了零件,只是参考,那我做出来,我难道还能开心的卖?那个老板肯定会追责啊,我当然不会再从人家那里拿参考,落个口实。
我在求朋友帮我买这个零件之前,我自己的零件已经做了3版出来了,正在迭代,现在准备V4版搞定。
做新东西(相对自己而言,如果自己以前没实际做过,就算新东西),没有一次是能直接搞定的。这个正常,有可能是自己没想周全,也有可能上一版东西配好后,有一些更好的想法。
我为啥想托朋友买这个零件,因为我卡在了一个点上,暂时想不清楚,想参考一下人家的东西。
但是我为了参考这个零件,不至于花1W来买老板家的这个产品本身啊。所以才托朋友单独买这个零件。
断绝了这个拿零件实物参考的想法之后,我又在自己想,花了1天,将卡住的点想通了,这个就是能力(分析问题,解决问题,将思想火花落地)。
等周边的东西到了,再迭代一次,基本V4这版就能搞定了。
我自己是有这个研发能力的。有参考亦可, 方便一些而已(研发岗的同学肯定懂我说的意思)。没有参考亦可,我自己通过思考 + 查资料找线索 + 实验试错,最终能搞定,这是没跑的。
关于有人PUA你怎么办
和这个老板通话时,他反复说"搞技术的人,有的人能走全流程,就以为自己能做产品。我觉得你适合做项目经理。要真正做事,技术只是一方面"。
我当时没反驳,只是婉拒。因为朋友的老板是个正经人。只是因为对招安的人这么说,可以理解,要保持礼貌。
这个老板本身也是搞技术的,也是做了好多事情,才摸索到他现在做的事情比较有搞头。
那你自己都是技术出身,慢慢摸索到现在的,你又如何说搞技术的人不适合自己做事呢?这不是很矛盾么?
不管你是搞啥的(无论是是搞技术的人,还是没上过学都行),只要具备2点基本素质(有想法,能落地),你就能自己做事。
别听别人对你怎么说,他们都是出于自己的利益,而不是站在你的出发点上考虑问题。这就是俗话说的"屁股决定脑袋",屁股在哪个位置坐着,就需要从哪个角度说话办事。
对于我来说,我有啥能力,能做啥,我自己最清楚不过。技术能力只是能力的一小块,那些挣了钱的老板,基本不是搞技术的。
但是,老板懂技术,肯定不是啥坏事。老板不懂技术,有时要做的事情的风险不可控,这才是危险的。(见过一个只知道如何经营和管理员工的小老板(身家2000, 只多不少),遇到问题,即使这个解法可能是数据造假的,他也敢去做,法盲啊。看了很震惊。他TM让我帮他改程序造假,这事直接拒绝。其他正规解法是有的,也不复杂,但是老板本身是初中毕业,他不懂。手底下的人也是随缘找来的人(歪瓜裂枣的),没有真正有能力解决问题的研发。如果因为没用正规解法,出了事情,如何担责? 这个后果他不懂,也没能力懂。从他的角度,他根本想不到这一点,这就是潜在的风险。这种不可控的事情做多了,如果不出事才稀奇。如果我是这件事中的小老板,我知道咋正规解决这个问题,即使我不知道具体解法,解决问题的方向我也懂啊,这风险就可控了)。
另外,已经见过了几个挣到钱的小老板,他们的挣钱路数并不深不可测,反而很直观易懂。
对于有想法的人来说,没吃过猪肉,见过猪跑即可。不需要别人来PUA。
如果有人PUA你,你的应对是分2种的(结合你自身实力)。
- 如果你没阅历,没能力。那么老老实实的让别人PUA你,但是你要明白,你并不认同对方的说辞。
- 如果你有阅历,有能力(简单的说,就是自己有想法,能落地),那在保持礼貌的情况下,让对方断了PUA你的念头。
只要自己有能力(有想法,能落地),这时就是自己做事的时机(再也不用给别人去打工了)。只要是个男人,就只管撸起袖子,干就完了。
别人说啥,就看他怎么方便就好,随他便,都不重要。