佩戴红宝石的草图大师(Ruby for Sketchup)--STLslicer(1)

2023-11-09 23:40

本文主要是介绍佩戴红宝石的草图大师(Ruby for Sketchup)--STLslicer(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

STLslicer

初衷

  • 首先。。。

絮叨

课题的原因,需要一个演示图片,做不好就开始犯牛劲。。。费劲学习这个。

首先的剖面方法:

见上
以下是修订版:

def sep(p='xy',length=0, no = 0)entities = Sketchup.active_model.entitiesif p == 'xy'sp = entities.add_section_plane([0, 0, length], [1.0, 0, 0])elsif p == 'yz'sp = entities.add_section_plane([length,0,0],  [0, 0, 1.0])else p == 'xz'sp = entities.add_section_plane([0, length, 0], [0, 1.0, 0])endsp.name=psp.symbol= no.to_ssp.activate
endsepsep "yz", -15, 15sep "xz",9, 9

结果如下图:

如图

剖切循环(loopSlicers):

按照一定的厚度,沿着坐标轴,做系列剖切:

如下图,立方体的直径为10mm,每2mm一个剖切面,沿着Z轴:

(0..10).each{ |i|if i%2==0sep i.to_l.mm, "yz", iend
}

在这里插入图片描述

boundingbox的引入

对于复杂的立体图,需要引入绑盒

这个有点难,我费了不少劲儿。。。

直接上代码:

def l2i(leng)num = leng.to_mm.to_l.to_i
endmodel = Sketchup.active_model
entities = model.entities
entities.each { |entity|if entity.class == Sketchup::ComponentInstancename = entity.definition.namedefn = entity.definitionbbox = defn.bounds@w = bbox.width.to_l.to_s@h = bbox.height.to_l.to_s@d = bbox.depth.to_l.to_sputs name + " " + @w + " " + @h + " " + @dpts = []pts[0] = bbox.corner(0)pts[1] = bbox.corner(1)pts[2] = bbox.corner(2)pts[3] = bbox.corner(3)pts[4] = bbox.corner(4)pts[5] = bbox.corner(5)pts[6] = bbox.corner(6)pts[7] = bbox.corner(7)#puts pts[0][0]xx = l2i pts[0][0]yy = l2i pts[0][1]zz = l2i pts[0][2]xw = l2i bbox.widthyd = l2i bbox.depthzh = l2i bbox.height# puts xx.class, xx.to_l.mm, xx+xw# sep xx, xx, "yz"(zz..zh-zz).each{ |i|sep i.to_l.mm, "xy", i-zz}end
}

在这里插入图片描述

(…未完待续。。。

这篇关于佩戴红宝石的草图大师(Ruby for Sketchup)--STLslicer(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379138

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

[数据集][目标检测]人脸口罩佩戴目标检测数据集VOC+YOLO格式8068张3类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):8068 标注数量(xml文件个数):8068 标注数量(txt文件个数):8068 标注类别数:3 标注类别名称:["face_with_mask","face_without_mask","mask"] 每个类别

从新手到大师:Java并发编程你必须知道的那些事!

文章目录 1 进程和线程的区别?2 如何创建一个线程实例并且运行它?3 Runnable 和 Callable 接口有什么区别?它们是如何使用的?4 方法定义中 synchronized 关键字的含义是什么?静态方法?在一个块之前 ? 1 进程和线程的区别? 进程是独立的执行单元,拥有自己的资源和内存,而线程是在进程内的执行单元,共享进程的资源。线程可以高效地执行任务,但需

基于yolov8的电动车佩戴头盔检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的电动车佩戴头盔检测系统利用了YOLOv8这一先进的目标检测模型,旨在提高电动车骑行者的安全意识,减少因未佩戴头盔而导致的交通事故风险。YOLOv8作为YOLO系列的最新版本,在检测速度和精度上均进行了优化,特别适用于处理复杂场景中的小目标检测。 该系统通过收集并标注包含电动车骑行者图像的数据集,对YOLOv8模型进行训练,使其能够准确识别骑行者是否佩戴头盔。在实

Ruby on Rails 开发 web

Ruby on Rails 正在令整个 Web 开发领域受到震憾。让我们首先了解底层的技术: Ruby 是一门免费的、简单的、直观的、可扩展的、可移植的、解释的脚本语言,用于快速而简单的面向对象编程。类似于 Perl,它支持 处理文本文件和执行系统管理任务的很多特性。 Rails 是用 Ruby 编写的一款完整的、开放源代码的 Web 框架,目的是使用更简单而且更少的代码编写实际使用的应

不懂Ruby的程序员,如何快速读懂Ruby代码

本问答的目标读者是不了解Ruby语言、但有别的编程语言经验的人。   Ruby语言的代码可读性是很强的。本问答只把一些语法特点、以及别的语言中可能没有或不同的东西展现出来,目的在于让有别的编程语言经验的人能快速读懂Ruby代码。   注意本问答讲的是Ruby语言本身(基于版本1.9),而不是Ruby on Rails,后者是Ruby的一种DSL,语言面貌上和Ruby有一定差异。

SketchUp Pro 2024 for Mac/Win:专业3D建模软件的卓越之选

SketchUp Pro 2024作为一款在业界广受好评的三维建模软件,不仅适用于Mac系统,也完美兼容Windows平台,为用户提供了跨平台的强大建模能力。该软件以其直观易用的界面设计著称,无论是初学者还是资深设计师,都能迅速上手并享受建模的乐趣。 SketchUp Pro 2024的建模工具集极为丰富,涵盖了线条、形状、曲线、文本和图像等多种元素,让用户能够轻松构建出复杂且精细的3D模型。其

如何使用 Ruby 中的 Selenium 解决 CAPTCHA

CAPTCHA,全称“全自动公共图灵测试以区分计算机和人类”,旨在保护网站免受自动化机器人的攻击。虽然它们在保护在线平台方面发挥着至关重要的作用,但当使用像 Selenium 这样的工具自动化任务时,它们可能会成为一个重大障碍。如果您在 Ruby 中使用 Selenium 并需要解决 CAPTCHA,本指南将提供一种逐步方法来有效地处理它们。 Selenium 和 Ruby 是什么? 在我

Ruby启动exe

将exe所在路径目录添加到系统pathruby脚本 system(‘run.exe’)system 带参数启动

MacOS用户必看:轻松升级Ruby版本,解锁开发新潜力!

在MacOS上升级Ruby版本是一项对于开发者来说重要的任务,它能够确保你的开发环境与最新的技术、安全更新和性能提升保持同步。以下是详细的步骤和方法来实现这一目标: 检查当前Ruby版本:通过终端输入 ruby -v 命令可以快速查看到当前MacOS上安装的Ruby版本。了解当前版本有助于决定需要升级到哪个新版本。使用Homebrew安装最新版本:安装Homebrew(如果尚未安装),通过运行