Tribon参数化建模之__对型材端切的参数化建模解析

 

摘要:参数化建模是工业设计软件普遍使用的建模技术,通过参数化可以提高建模速度的同时提高模型的标准化。Tribon中也大量使用了参数化建模技术,一条上万零件有几百人参与的船舶设计,很好的做到了标准统一。型材端切是参数化建模的典型,从端切入手研究Tribon在参数建模方面的程序设计思路是一个不错的方式。

关键词:Tribon,端切,参数化建模

1.      概述

当一个型材加工时,也就是对原材料进行切割,型材端部必须加工成合适的形状,型材端部的形状叫端切(endcut)。在三维模型的表示中,需要通过输入CUT参数对型材的端部进行控制。参数由用户输入,自动计算和初始化设置三部分组成。这篇文章将讲解如何通过研究Tribon的端切定义,来在外部CAD程序中重构一个筋模型。

2.      Tribon端切标准,原理

Tribon包含大量的内置端切标准,提供给用户,此标准被分成大量预定义的端切类型。一个端切类型对应于一个特定的几何形状。它的实际外形由设定在标准表中的参数控制。其它的由设计者给出或自动计算出。如,根据型材端部连接。一扁钢端切的典型例子被说明如下(Tribon标准端切类型11)

2.1   端切类型

端切类型是范围10~326的数字,可用端切被覆盖且出版在Tribon中的端切标准。在M3中用户无法增加端切类型,而AM的新版本已经能够提供自定义端切类型。如上例是端切类型11。

2.2   端切代码

端切代码是端切类型的实例,以一定的标准值的组合对于直接的端切参数。端切类型的端切代码必须为数字,并加上两个类型数而生成,如属于某一个端切类型的端切代码限为100,(然而,每个端切代码有大量事件由直接给出参数的标量,在上例中仅角度V).

Tribon供给大量已定义的端切代码作为标准。例如,下表显示端切的一些端切代码属于端切类型11,每一代码以某种组合R1,R2,这些值可由用户更改。此标准化得代码参数设于端切表中,存在SB_OGDB相关联的数据库,由initHull维护。

2.3   显示的端切参数

相关直接给出的参数及其它的解释以单独至某一端切,它们总数目前限制为6,大多数三个是尺寸参数(长度)(由参数名识别A,B,C)并去除三个端切角(V1,V2,V3),V1为型材腹板的角度,V2和V3是型材面板上的角度。这些参数必须一定次序给出,对每个端切类型规定。角度参数总在参数清单的后面,也总为可选项,如果它们不给出将由Tribon自动计算,如型材端部连接,否则,它们缺省为90度,如用户直接分配一个角度将代替,自动计算的一个。用户给出参数一般不更改。如果上述端切类型11,角度V就是显示的端切参数。

2.4端切建模的使用

设计者通过给出的端切代码制定其想用的端切类型,下述为显示的参数,如板架生成端切在Type:11,可由写入选择。

CUT=1112,80

这将导致端切类型11,R1=R2=35,V=80,作为比较。

CUT=1112

将按照连接计算V值,如无连接V=90。

2.5  端切标准的用户设定

如上述,用户可以通过端切表修改内置的端切标准参数,假定任一端切的几何能由一限定的参数控制。如,清单中型材加工草图,这些参数的解释对每一端切类型是单独的,参数是A,B,C,R1,R2,V1,V2,V3,V4。A,B,C是长度,R1和R2是切角半径,V1,V2,V3,V4是端切角,根据端切类型,一些参数的无关的。这九个参数就是Tribon内部控制型材端切的。

2.6  端切表的初始化

用户由端切表控制端切,在SB_OGDB内由initHull创建并更新,端切表应分配至Tribon环境变量,SB_ECUT后可用于运行程序。

可能有工程根据端切表,因为仅这些端切类型/代码能再目前用的端切表中使用,可能限制端切的使用,通过去除它们,如某一工程可仅用总端切标准的子集,也可能在工程间更改内置参数,如一个小船可要求较小的由切角半径相比大船,用户可加新的端切代码,只要数量规格遵守。

输入文件创建端切表目前是在单记录类型的文件文本,一个标准输出文件包含,所有现存端切类型的例子在Tribon中有举例。

输入由两个记录类型并以下述方法组织

<record type 600>

<record type 601>(1…)

因此必须以一记录类型600开始,接以任意数的记录类型601

记录类型600简单包含分至SB_ECUT的端切表名,它有下述格式:

600 ‘<endcut table name>’

每一记录类型601定义一行表,如下述布置

601 <type><npar><par1><par2>…<par<npar>>

这有两种记录类型,选择行和参数行

2.6.1选择行

在选择行<type>是端切类型(在10~326),这表示它们仅为一端切类型的选择行,参数被固定,必须是9,参数是选择代码,对每种结果参数,按上表次序如A,B,C,等,对无关参数选择代码参数可为-1。其中选择代码是内置代码,是对参数灵活控制的一种方式,这方面值得我们软件开发学习。选择代码的详细说明在下面会提到。

注:实际上,选择行必须由Tribon公司设定,并不能由用户更改

2.6.2参数行

参数行规定了与某一端切代码相关的初始化参数,典型切角半径及固定角度,<type>为端切代码,因此每个参数代码必须有一参数行。

当用户想要增加一个新的端切代码时,如一个端切类型的新例子,它可由新端切代码增加一个新的参数行,更方便的方法就是拷贝一个已存在的行,属于目前类型并更改相关参数。

参数的数量可变化,目前最大数是4,一般最少3个参数被给出,不相关的参数被定义为-1,但也不是必须。此每一参数的解释由选择代码控制,选择代码在当前端切代码出现的端切类型的选择行。如参数定义一切角半径,但切角应被一个削斜角,削斜的尺寸由负值给出KS切角。

2.7选择代码与端切参数

在描述选择代码前,先把其中的一些参数进行说明

a)、A,B,C,R1,R2,V1,V2,V3,V4是根据端切几何能被建立的参数,这9个参数是系统内置参数,是直接生成内置端切形状的控制参数。

b)、Acut,bcut, ccut,ang1,ang2,ang3(有时ang1和ang3被ang4代替)为显示参数,是建模时设计员输入或者系统自动计算出来的参数,并且与船体模型一起存储。

2.7.1选择代码

选择代码(SC)最多4个整数(=XYZW)根据在选择行的位置,有效的结果几何参数,如果选择代码有几个数字组成,必须从右向左解释,又是以几步进行,参数应以A,B,C等次序评估,因为几个评估参数可在下述一个评估中,在正选择代码的缺少肩头的数字应解释为,如X=0,Y=0,Z=1,W=0对应于选择代码为10。

对于选择代码为负的参数,相应的参数将设为0,否则,参数应进行如下初始化:

A is set = acut,

B is set = bcut,

C is set = ccut

然而,这些值可以根据选择代码改变,具体描述如下:

选择码

选择码值

参数

说明

W

W>0,那么从当前端切代码的值取为其参数行的W列值, W值记录列位置值

Z

如Z>0 那么从acut(bcut,ccut)取值,如果Z=1 (2,3)

Y

=1

V1

如果输入角度ang1>0,设V1= ang1,默认为90

=2

V2

设V2由W显示的值,默认为90

X

=1

B

如果B=0分配的值由W显示

=1

C

如果C=0,那么设置C=(aprof-bcut)/2

=1

R1

设置R1=0,如果B=0

=1

V1

设V1=0,如果B=0

=2

B

如果bcut不等于0,那么设B=bcut,否则设置B=aprof并按W减去数值

=5

=9

R2

R2按用户具体规格计算

规格看起来复杂,实际上非常复杂的例子很少,如上述,当新的端切类型实施时,带有选择代码的选择行必须由Tribon解决方案定义,一般不会有用户更改,一旦你知道给出的参数具有什么适当的几何,改变参数行的参数是相当方便的

2.7.2 例子

下述为端切22的选择行,接以端切代码2211为参数行,

Type

A

B

C

R1

R2

V1

V2

V3

V4

601

22

9

10

1021

-1

1

-1

100

202

-1

-1

601

2211

2

35

30

假设设计员建模时扶强材端部由下述输入:

CUT=2211,150,50,80(*)  (* 一般自动计算)

端切类型22的选择行所表示的参数选择解释如下:

A(选择代码 = 10, i.e X=0, Y=0, Z=1, W=0),由于Z=1,设置A=acut(150)

B(选择代码=1021),第一个设定B=bcut(=50).因B有一个值,忽视由W(和X)显示的值,如果bcut为0,那么B将被设置等于R1(=35)

C=0 (选择代码=-1)

R1(选择代码=1),将R1到参数值1 的参数行(=35)

R2=0(选择代码=-1)

V1(选择代码=100).因为Y=1,设V1=ang1(=80),由于X=0不进一步更改

V2(选择代码=202),由于W=2,设置V2等于参数行(30)第二参数,因为V2<90 V2不受条件Y=2的影响

V3=0(选择代码=-1)

V4=0(选择代码=-1)

3.      参数化端切的程序化

上面写了那么多实际上市帮助文档里面的说明,只是为了更好的理解列举在此。这篇文章当然不是简单的工程初始化说明,而是要自己开发一下端切的建模程序。

3.1 参数说明

帮助文档中的概念很多,开发程序前需要把这些概念理顺。下面就对其中的一些概念进行简单的说明。

a)、端切类型是Tribon系统固定在程序中的(Aveva Marine新版本可以自定义添加)。也就是说端切类型种类固定,在程序制作中每种类型需要编写一个处理方式。

b)、端切代码是初始化定义的标准代码,端切代码所在初始化行叫参数行,里面所表示参数意义是通过初始化中的选择行选择代码决定的。由于选择行无法更改,实际上端切代码初始化参数的意义对于某一个端切类型是固定的。

不过,这种参数化的程序设计方式,也是值得我们学习的。往后可以更加灵活的控制。

c)、一个端切的几何描述需要把A,B,C,R1,R2,V1,V2,V3,V4这9个参数进行设置,参数包括用户输入参数和初始化参数。

3.2CSG建模

计算方式确定之后,就需要考虑如何把模型显示在计算机上面。计算机上面显示三维模型的方式很多,其中有一种叫CSG(Constructive Solid Geometry)建模法,也叫体素建模法。是CAD软件中比较产用的构件实体模型的方式。

CSG建模法,一个物体被表示为一系列简单的基本物体(如立方体,圆柱体,圆锥体)的布尔操作的结果,数据结构为树状结构。树叶为基本体素或变换矩阵,节点为运算,最上面的节点对应着被建模的物体。

CSG建模方法简洁,生成速度快,处理方便。而且能够详细地记录构成实体的原始特征参数,甚至在必要时可修改体素参数或者附加体素进行重新拼合。

在Tribon型材建模中,型材可以考虑为CSG模型的父节点,两端的端切作为子节点。通过端切与型材进行逻辑上面的减运算,这样就可以生成一个包含具体端切类型的型材模型。这种拓扑减实际上吧端切模型作为一种负实体(Negative Geometry),这在PDMS软件中大量使用。从侧面说明我们的推测Tribon内部的建模方式还是合理的。

3.3 例子

在这里我们按照上面的思路编写了一个基于AutoCAD的插件程序。通过读取Tribon中的数据库,重新构建了一个筋模型的显示程序。

下图为Tribon中的模型,

下图为AutoCAD中显示的模型。

4.      小结

Tribon作为一款成熟的船舶三维设计软件,能够实现整船的三维建模,功能强大且用户自定义丰富,这是软件中大量使用参数化建模的原因,也是参数化建模的优势。

虽然,计算机三维建模技术已经很成熟。但是,还是很有必要研究一下成熟产品的软件架构方式,尤其是这种参数化建模程序,这对我们自己开发新软件将有很大的帮助。这篇文章只是从型材端切这一小块入手,从分析它的数据结构,到程序的设计,到最后模型的显示。从而论证我们的想法的可操作性,也为我们开发参数化建模程序提供了有益的借鉴。

三维模型在计算机中的显示往往给用户带来一种全新的体验,尤其当下各种VR和AR技术流行的当下,能否实现传统CAD所建的模型,能够无障碍的显示在各个平台,将有很大的技术应用前景和经济价值。这篇文章从参数化建模和CSG建模的角度提供了一个很意思的模型创建和显示的解决方法。

Tribon参数化建模之__对型材端切的参数化建模解析相关推荐

  1. 实时互动下视频 QoE 端到端轻量化网络建模

    在实时视频互动中,影响观众对视频体验的有较多且复杂的因素,包括:画质.流畅度以及与其耦合的观看设备等.传统客观算法会利用网络传输或编解码参数拟合接收端人的感知体验,或者使用图像质量结合其他相关参数拟合 ...

  2. python参数化建模加工图_基于Python的ABAQUS层压板参数化建模

    唐维 康泽毓 杨婷 曾凤 蒋莉 摘要:为了提高层压板在ABAQUS仿真中建模的效率与准确性,提出利用Python语言对ABAQUS二次开发进行层压板参数化建模的方法.基于ABAQUS有限元软件,采用P ...

  3. 开关电源环路的零极点可以在反馈端补偿吗_开关电源的建模和环路补偿设计(1):小信号建模的基本概念和方法(一)...

    本文引用地址:http://www.eepw.com.cn/article/201808/387877.htm 图 8:将降压型转换器变成平均式.AC 小信号线性电路 以图 8 所示线性电路为基础,既 ...

  4. spss数据预处理步骤_数学建模准备必备的十个数据分析软件(数学建模从入门到精通)...

    前几天咋们聊了很多关于数学建模的干货,比如怎么样去前期准备学习数学建模,又比如数学建模需要哪些疾病软件?再比如数学建模论文摘要写作技巧.昨天那篇更是直接把数学建模常用的思维导图.流程图软件全部统统介绍 ...

  5. 学3D游戏建模用什么软件好?尤其是人物角色建模

    一 跳出软件层面理解软件,我们要牵着软件的鼻子走. 关于3D建模软件有哪些,这个问题,我在下面会详细的讲解,一堆,会看的你眼疼,这个问题不着急,淡定.首先我需要讲的是跳出软件这个层面来理解软件,放大我 ...

  6. 3D建模软件全科普,想要学好游戏建模的你千万别错过!

    3D建模软件普遍存在于我们的日常的学习和工作中,但是高校基本不开设软件类课程.在真正的工作中,我们才发现在学校自学的那点软件基础完全不够用,甚至连基本的软件知识都不清楚. 所以今天,我们对几款超好用的 ...

  7. 游戏建模学习选择Max还是Maya呢?场景建模用哪个?

    Maya软件: 是美国Autodesk公司出品的世界顶级的三维动画软件,应用对象是专业的影视广告,角色动画,电影特技等.Maya功能完善,工作灵活,易学易用,制作效率极高,渲染真实感极强,是电影级别的 ...

  8. 统一建模语言UML轻松入门(3)――静态建模:类和对象

    统一建模语言UML轻松入门(3)――静态建模:类和对象 --------------------------------------------------------------------- 宋宝 ...

  9. 3A公司年薪30万建模师总结:怎么做才能学好3D建模?

    从各类招聘平台可以看到3D建模岗位需求越来越大,很多对3D建模一知半解,我们所看到的照片.图片都是二维的.怎样把自己喜欢的事物以三维方式来展现给用户呢?给用户大提高体验度.分享我在学习以及从事这份行业 ...

  10. 数据建模_浅谈数据仓库建设中的数据建模方法

    所谓水无定势,兵无常法.不同的行业,有不同行业的特点,因此,从业务角度看,其相应的数据模型是千差万别的.目前业界较为主流的是数据仓库厂商主要是 IBM 和 NCR,这两家公司的除了能够提供较为强大的数 ...

最新文章

  1. MIT机器狗再进化,碎石冰面上跑也不打滑,这次真的稳如狗了
  2. LCS最大公共子序列【转载】
  3. 算法练习day16——190404(KMP算法)
  4. 如何构建一套高性能、高可用性、低成本的视频处理系统?
  5. @FeignClient 接口调用
  6. php本地测试还是线上,PHP本地与远程测试(一)
  7. java 本地 mq_java rocketmq--消息的产生(普通消息)
  8. sigsuspend函数(mysleep函数的改进)
  9. JavaScript学习(九十一)—二维数组的基本操作
  10. laravel redis_php session 存储到redis里
  11. excel表格不够怎么添加_做出来的Excel表格乱七八糟,不够清晰?学会思路就简单多了...
  12. python列表模糊匹配_Python下用List对员工信息表进行模糊匹配
  13. C语言:“~”操作符详解
  14. 引入icon.styl字体文件无法解析报错
  15. Oauth2认证图解
  16. feign接口返回泛型设置属性为null问题
  17. IM即时通讯综合消息系统的架构
  18. R绘图 第十篇:绘制散点图(高级)
  19. 为OpenStack量身打造 OVS推出全新OVN项目
  20. Lua:01---Lua语言介绍、运行Lua程序(lua解释器)

热门文章

  1. TGS.Avizo.v5.0 1CD
  2. python实现微信自动发信息软件_python实现微信每日一句自动发送给喜欢的人
  3. Android OpenCv实现拍照搜题功能实现步骤
  4. Nginx 架构原理
  5. 三星s8 android9.0官方rom,三星s8刷机包(最新固件升级V9.0)
  6. cad转dwf简易教程
  7. jdbcTemplate测试报错:没有合适的驱动
  8. 用Python+Appium自动写网课考试
  9. 西南科技大学OJ题 顺序表上数据的划分问题的实现1102
  10. SQK Server实现 LeetCode 175 组合两个表