路径

个人理解,路径实质上是多条连续的线段进行组合起来具备某些特殊意义,最主要的作用还是为了让自定义的截面进行跟随形成一些我们想要的模型。

代码演示会更直接理解一点:

model = Sketchup.active_model
entities = model.entities
sel = model.selectionpt0 = Array.new()
# 原点用数组(矩阵)表示
orignPoint = Array.new(3,0)
# 绘制简易曲线路径
for i in 90..270pt = [orignPoint.x + i,orignPoint.y + 100 * Math::sin(i.degrees),orignPoint.z]pt0 << pt
end
curveline = entities.add_curve pt0复制代码

绘制面:

# 新建面的顶点数组
facePointArr = [[0,0,10],[10,0,10],[10,10,10],[0,10,10]
]test_face = entities.add_face facePointArr# 此时我们知道 entities 数组中就有了 5个实体 1曲线、1面、4线# 选中一个面
# 提取出这个面的顶点
sel.add test_face
verticesArr = sel[0].vertices
for item in verticesArrputs item.position
end复制代码

补充关于方向:

#  Sketchup 某些矩阵特定意义
#  X 轴 :[1,0,0] [-1,0,0]
#  Y 轴 :[0,1,0] [0,-1,0]
#  Z 轴 :[0,0,1] [0,0,-1]#  某些函数(add_circle、add_nogn)需要指定某些面进行绘制,就要设置normal 参数
#  XY面 设置 [0,0,1] [0,0,-1]
#  XZ面 设置 [0,1,0] [0,-1,0]
#  ZY面 设置 [1,0,0] [-1,0,0]# 我们在建立面时,并没有指定方向
# 但我们发现:Z轴不为 0 是 [0,0,1] 为 0 时是 [0,0,-1]
# 这个与存储与取出机制有关,实际应用中 正负影响不大
puts test_face.normal# 面朝向反向
reverseFace = test_face.reverse!# 面的面积 (这里的单位 10 * 10 平方英寸)
puts reverseFace.area
# 组成面的线对象数组
puts reverseFace.edgespt = [5,5,-10]
# 对于 Face 与 点 关系的判断
result = reverseFace.classify_point(pt)
puts result
# 官方提供了一个枚举类型
# 点在面里
if result == Sketchup::Face::PointInsideputs "#{pt.to_s} is inside the face"
end# 点在端点上
if result == Sketchup::Face::PointOnVertexputs "#{pt.to_s} is on a vertex"
end# 点在边线上
if result == Sketchup::Face::PointOnEdgeputs "#{pt.to_s} is on an edge of the face"
end# 点与面处于同一平面
if result == Sketchup::Face::PointNotOnPlaneputs "#{pt.to_s} is not on the same plane as the face"
end复制代码

平面拉升

# pushpull 推的方向是按照图形的normal方向
# face 没有对于向量进行定义,所以pushpull按照的是face的normal值的反向reverseFace.pushpull 10# 推一个圆柱体
circle = entities.add_circle [0,0,40],[0,0,1],5
circle_face = entities.add_face circle
circle_face.pushpull 20# followme 进行3D模型构建
# 使用followme  对模型进行环切
cut_face = entities.add_face Geom::Point3d.new(0,0,10),Geom::Point3d.new(2,2,10),Geom::Point3d.new(0,0,8)
cut_face.followme reverseFace.edges# followface
followFace = [Geom::Point3d.new(100,95,-5),Geom::Point3d.new(100,105,-5),Geom::Point3d.new(100,105,5),Geom::Point3d.new(100,95,5)
]followFace = entities.add_face followFace# 跟随的界面一定是在路径的一端
followFace.followme curveline
复制代码

Sketchup 程序自动化(三)路径、平面拉升相关推荐

  1. 九龙证券|三胎概念股拉升…港股跳水,恒生科指重挫近5%

    兔年首个交易日,A股迎来开门红,沪指开盘即打破3300点,创业板指一度涨近3%:港股却大幅下挫,恒生科技指数一度跌超5%. 详细来看,A股方面,两市股指全线高开,沪指开盘即打破3300点,再创本轮反弹 ...

  2. Sketchup 程序自动化(六)颜色、材质贴图

    在Sketchup对导入的模型进行贴图或者填充颜色,然后通过V-ray.Octan进行渲染来出效果图,在 Sketchup 开发中,我们也可以试想下,这些贴图的工作能否交与计算机进行实现,根据获得的参 ...

  3. Sketchup 程序自动化(二)Ruby 基础、单位转换

    1.Sketchup的单位转换 在我们打开Sketchup界面时,首先会选择模版,或者是默认的模版,这个模版规定了我们的尺寸单位,我们画的线是按照选择的单位格式来进行计算和规划. 在二次开发中,默认的 ...

  4. SketchUp的自动化实战 (三)随机贴图

    SketchUp的自动化实战 (三)随机贴图 今天来学习一个随机贴图插件, 学习两种不同的实现. 随机贴图插件功能是: 收集选择区域中面上的材质, 随机分配给其它没有材质的面.组.组件. 并思考两个问 ...

  5. 西门子1200三轴打胶机程序。 三轴运动控制定位,进行三维平面打胶

    西门子1200三轴打胶机程序. 三轴运动控制定位,进行三维平面打胶,平面打胶,Z轴上下使能,PLC与工业相机进行TCP通信来读取定位偏差,传送数据通过比较完成精准定位. 程序支持博图15及以上. 程序 ...

  6. 微信小程序自动化框架minium实践,手把手带你玩minium

    一.背景需求 精选小程序发生了一次线上问题,测试阶段的小程序开发码测试ok,但是小程序正式码由于打包问题,"我的订单"页面文件打包失败,导致线上用户访问我的页面白屏. 当前并不能避 ...

  7. android微信小程序自动填表_微信小程序自动化,记录趟过的坑!

    项目思想:关键字+数据驱动混合测试 基于Android-微信小程序自动化的关键是:webview的切换 对于微信App来说如何从NATIVE切换到webview的过程 测试版本信息 1.微信版本:7. ...

  8. Windows10windows server 2012r2作为slave 用jenkins部署微信小程序自动化打包

    背景 微信小程序的测试发布在没有 CI/CD 等相关工具的情况下,存在着如下的问题: 小程序开发助手中,同一个开发者只能显示一个开发版本 测试同事.产品经理.UI设计师找开发要二维码,或者本地拉取代码 ...

  9. 增长复盘|我们在小程序实现裂变!日拉新1000+

    Kevin改变世界的点滴 Kevin改变世界的点滴 昨天 大家好,我是Kevin.这是2019年第48篇原创 PMTalk产品经理社区2019年第5篇增长复盘 关于PMTalk产品经理社区的裂变与增长 ...

最新文章

  1. RDKit | 基于RDKit输出分子结构图(Image)的方法
  2. 基于HTML5 Canvas实现工控2D叶轮旋转
  3. 1001Freedownloads – 免费下载海量素材
  4. Eclipse之实用快捷键
  5. Python-数据结构(二)
  6. 1024看到这篇文章的程序员,能不能把你的电脑桌面右下角截图回复
  7. [算法模板]树状数组
  8. 随想录(kernel的版本管理)
  9. Jenkins 自动化集成之路 Linux 安装 maven
  10. mysql C where语句_mysql – 在WHERE子句中使用substr的SELECT语句
  11. 跳一跳外挂的python实现--OpenCV步步精深
  12. flink EventTime与Window
  13. mysql 多源复制 过滤_MYSQL 多源复制,过滤复制与应用场景
  14. PL读写PS端DDR的设计
  15. 深度学习已入末路,AI未来是图网络
  16. 计算机u盘管理软件,电脑U盘管理工具、计算机U盘管理软件、U盘控制软件的使用.doc...
  17. 东大22春领导科学与决策X《领导科学与决策》在线平时作业2题目非答案
  18. 微信配置JS接口安全域名问题-Nginx配置
  19. 一个90后程序员,需要养活几个过重阳节的老人?
  20. 不小心删除文件夹怎么恢复,怎么恢复误删文件?

热门文章

  1. 本周最新文献速递20210912
  2. 使用 Jest + Testing Library 完成 React 的单元测试
  3. 计算机二级知识普及挑战赛答案,计算机二级MSOffice考试强化训练题
  4. iOS的安装包:deb、ipad、pxl
  5. 每日简报 5月22日简报新鲜事 每天一分钟 了解新鲜事
  6. JAVA获取UTC时间
  7. 横向进位阵列乘法器与 流水线横向进位阵列乘法器 Verilog
  8. 新加坡国际学校IB课程详解
  9. DNF选服务器ms不稳定,DNF:玩家投票普雷炸团原因,我们错怪萌新了,掉线才是罪魁祸首...
  10. 基于RFID技术在珠宝智慧门店中的应用