佩戴红宝石的草图大师(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

相关文章

[大师C语言(第三十六篇)]C语言信号处理:深入解析与实战

引言 在计算机科学中,信号是一种软件中断,它允许进程之间或进程与内核之间进行通信。信号处理是操作系统中的一个重要概念,它允许程序对各种事件做出响应,例如用户中断、硬件异常和系统调用。C语言作为一门接近硬件的编程语言,提供了强大的信号处理能力。本文将深入探讨C语言信号处理的技术和方法,帮助读者掌握C语言处理信号的高级技巧。 第一部分:C语言信号处理基础 1.1 信号的概念 在Unix-lik

[240623] ShellScript 视角下的 Ruby | Tiobe 2406 - C++ 超 C;Fortran 老当益壮

目录 @[TOC](目录)ShellScript 视角下的 Ruby引言Ruby 用于 Shell 脚本的优势结论 Tiobe 2406 - C++ 超 C;Fortran 老当益壮 ShellScript 视角下的 Ruby 引言 Ruby 常与 Rails 框架联系在一起,导致许多人忽略了它本身的强大。Ruby 是一门功能丰富且完整的语言,在编写 Shell 脚本方面甚至优于 P

三十八篇:架构大师之路:探索软件设计的无限可能

架构大师之路:探索软件设计的无限可能 1. 引言:架构的艺术与科学 在软件工程的广阔天地中,系统架构不仅是设计的骨架,更是灵魂所在。它如同建筑师手中的蓝图,决定了系统的结构、性能、可维护性以及未来的扩展性。本节将深入探讨软件架构的定义、其在系统设计中的核心作用,以及不同架构风格对系统特性的影响。 软件架构的定义及其在系统设计中的核心作用 软件架构,简而言之,是指软件系统的基本组织结构,

Ruby编程语言学习

学习Ruby编程语言,你可以按照以下步骤进行: ### 1. 基础知识入门 #### 安装Ruby - 访问Ruby官网(https://www.ruby-lang.org/)下载适合你操作系统的版本。 - 对于Linux用户,可以使用包管理器安装。 #### 学习资源 - **官方文档**:https://www.ruby-lang.org/en/documentation/ - **书籍

ZW3D二次开发_删除草图中的实体

1.目前草图中的实体不能直接通过id删除,而是通过entityPath实体路径,所以需要将id转化为实体路径。 2.以下示例代码的主要功能为获取草图中的所有实体并删除: int Count;int *idEnts;ZF_CALL(cvxSkInqGeom(&Count, &idEnts));//获取当前草图的所有几何体//ZF_CALL(cvxSkInqPnt(&Count, &idEnts

【Ruby爬虫02】自动获取小说

# 使用前请先安装如下gem# gem install http # gem install nokogiri require 'http' require 'nokogiri' url = 'https://www.85xs.cc/book/douluodalu1/1.html' page_index = 1 loop do # max_hops: 自动重定向次数 r

【Ruby爬虫04】获取阴阳师高清图

require 'json' require 'http' require 'nokogiri' require 'fileutils' # 伪装自己 headers = { 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chro

Camtasia2024中文版视频创作神器,轻松成为剪辑大师

🌟 嗨!各位的小伙伴们,今天我要安利一款让我彻底着迷的软件——Camtasia 2024中文版!作为视频制作和编辑的狂热爱好者,我尝试过无数的软件,但Camtasia无疑是我的最爱。它不仅功能强大,操作简便,而且还能带给你无与伦比的创作乐趣。如果你也像我一样对视频制作充满热情,那就一定不能错过这款神器! 🎉 Camtasia 2024中文版是一款集屏幕录制、视频剪辑、音频处理等功能于一体的专

[大师C语言(第三十五篇)]C语言Excel操作背后的技术

C语言是一种高效且灵活的编程语言,但在处理Excel文件时,通常需要借助第三方库,因为C语言标准库并不直接支持Excel文件格式。在C语言中操作Excel文件,我们可以使用如libxlsxwriter、libxlsxreader等第三方库来实现。本文将深入探讨C语言Excel操作背后的技术,并通过详细的代码示例来展示这些技术的实际应用。 第一部分:使用libxlsxwriter库创建Excel文

舒适佩戴,享受沉浸式音乐体验,西圣AVA2耳机体验

平时不管是听音乐,还是打电话,戴上一副耳机都可以让我们获得更好的隐私性,并且在公共场所,比如办公室、车厢里,也可以获得属于自己的空间。现在市面上耳机的选择非常多,音质、续航和佩戴的舒适度是我们选择时主要考虑的因素。 对于那些预算有限的朋友来说,现在百元价位的蓝牙耳机选择也很多,像是我最近在用的西圣AVA2,不仅价格亲民,还在多个方面提供了令人惊喜的表现,算是很有性价比的选择。此外这款耳机的设