CN112668066B - 抽象模型的构建方法、装置及电子设备 - Google Patents
抽象模型的构建方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112668066B CN112668066B CN202011596079.0A CN202011596079A CN112668066B CN 112668066 B CN112668066 B CN 112668066B CN 202011596079 A CN202011596079 A CN 202011596079A CN 112668066 B CN112668066 B CN 112668066B
- Authority
- CN
- China
- Prior art keywords
- target
- parameters
- sub
- coordinate transformation
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000009466 transformation Effects 0.000 claims abstract description 117
- 238000010276 construction Methods 0.000 claims abstract description 5
- 238000013519 translation Methods 0.000 claims description 19
- 239000013598 vector Substances 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013461 design Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000003491 array Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种抽象模型的构建方法、装置及电子设备,涉及机械设计的技术领域,包括:基于预先配置的多个基本形状定义目标元素集合;其中,目标元素集合包括至少一个子元素,所述子元素为所述基本形状或中间元素,所述中间元素包括所述基本形状和/或其他中间元素;获取用户针对目标元素集合中各个子元素设定的元素参数;其中,元素参数包括目标元素属性参数和目标坐标变换参数;基于目标元素属性参数和目标坐标变换参数生成目标抽象模型。本发明可以有效降低抽象模型的构建难度,极大地降低了用户构建抽象模型的工作量。
Description
技术领域
本发明涉及机械设计技术领域,尤其是涉及一种抽象模型的构建方法、装置及电子设备。
背景技术
在智能机械设计领域,经常需要以构建三维抽象模型,以利用该三维抽象模型来完成各种设计前期的验证/计算步骤。目前,通常采用OpenSCAD、OpenJSCAD等技术以脚本形式构建各种复杂的零部件,但是至少存在以下不足:(1)学习门槛较高,设计人员需要有一定的编程基础才能掌握其所用的描述语言;(2)对于一些简单的抽象模型,通过脚本语言描述起来较为繁杂。
发明内容
有鉴于此,本发明的目的在于提供一种抽象模型的构建方法、装置及电子设备,可以有效降低抽象模型的构建难度,极大地降低了用户构建抽象模型的工作量。
第一方面,本发明实施例提供了一种抽象模型的构建方法,包括:基于预先配置的多个基本形状定义目标元素集合;其中,所述目标元素集合包括至少一个子元素,所述子元素为所述基本形状或中间元素,所述中间元素包括所述基本形状和/或其他中间元素;获取用户针对所述目标元素集合中各个所述子元素设定的元素参数;其中,所述元素参数包括目标元素属性参数和目标坐标变换参数;基于所述目标元素属性参数和所述目标坐标变换参数生成目标抽象模型。
在一种实施方式中,所述获取用户针对所述目标元素集合中各个所述子元素设定的元素参数的步骤,包括:读取所述目标元素集合中各个所述子元素的初始参数;其中,所述初始参数包括所述初始元素属性和所述初始坐标变换参数;获取所述用户针对所述初始参数修改得到的元素参数。
在一种实施方式中,所述基于所述目标元素属性参数和所述目标坐标变换参数生成目标抽象模型的步骤,包括:基于所述目标元素属性参数分别生成各个所述子元素对应的三维模型;基于所述目标坐标变换参数对各个所述子元素对应的三维模型分别进行坐标变换操作;合并所述坐标变换操作后的各个子元素对应的三维模型,得到目标抽象模型。
在一种实施方式中,所述基于所述目标元素属性参数分别生成各个所述子元素对应的三维模型的步骤,包括:递归遍历所述目标元素集合中的每个子元素;如果该子元素为所述基本形状,基于所述基本形状的类型和该子元素的目标元素属性参数生成该子元素对应的三维模型;如果该子元素为所述中间元素,采用递归方式基于该子元素的目标元素属性参数生成该子元素对应的三维模型。
在一种实施方式中,所述方法还包括:如果所述目坐标变换参数的值类型为指定形式,基于所述目标元素属性参数设置所述目标坐标变换参数;和/或,如果所述目标坐标变换参数的值类型不为所述指定形式,基于预设常量设置所述目标坐标变换参数。
在一种实施方式中,所述基于所述目标坐标变换参数对各个所述子元素对应的三维模型分别进行坐标变换操作的步骤,包括:遍历所述目标元素集合中的每个目标坐标变换参数;对于每个目标坐标变换参数,根据预先配置的参考参数、该目标坐标变换参数和该目标坐标变换参数对应的坐标变换类型,对所述目标元素集合中指定的子元素对应的三维模型进行坐标变换操作。
在一种实施方式中,所述参考参数包括参考点、参考线、参考面中的一种或多种。
在一种实施方式中,所述坐标变换类型至少包括基于向量的平移操作、基于点到点的平移操作、基于点到面的平移操作、旋转操作。
第二方面,本发明实施例还提供一种抽象模型的构建装置,包括:集合定义模块,用于从预先配置的多个基本形状定义目标元素集合;其中,所述目标元素集合包括至少一个子元素,所述子元素为所述基本形状或中间元素,所述中间元素包括所述基本形状和/或其他中间元素;参数获取模块,用于获取用户针对所述目标元素集合中各个所述子元素设定的元素参数;其中,所述元素参数包括目标元素属性参数和目标坐标变换参数;模型生成模块,用于基于所述目标元素属性参数和所述目标坐标变换参数生成目标抽象模型。
第三方面,本发明实施例还提供一种电子设备,包括处理器和存储器;所述存储器上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如第一方面提供的任一项所述的方法。
第四方面,本发明实施例还提供一种计算机存储介质,用于储存为第一方面提供的任一项所述方法所用的计算机软件指令。
本发明实施例提供的一种抽象模型的构建方法、装置及电子设备,首先基于预先配置的多个基本形状定义目标元素集合,然后获取用户针对目标元素集合中各个子元素设定的元素参数(包括目标元素属性参数和目标坐标变换参数),从而基于目标元素属性参数和目标坐标变换参数生成目标抽象模型,其中,目标元素集合包括至少一个子元素,子元素为基本形状或中间元素,中间元素包括基本形状和/或其他中间元素。上述方法基于预先配置的多个基本形状定义目标元素集合,可以基于目标元素集合的元素参数生成目标抽象模型,采用本发明实施例提供的上述抽象模型的构建方法,用户几乎不需要掌握编程知识便可快速地构建所需的抽象模型,相较于现有技术,本发明实施例可以有效降低抽象模型的构建难度,极大地降低了用户构建抽象模型的工作量。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种抽象模型的构建方法的流程示意图;
图2为本发明实施例提供的一种目标元素集合的示意图;
图3为本发明实施例提供的一种L块抽象模型的示意图;
图4为本发明实施例提供的一种U型块抽象模型的示意图;
图5为本发明实施例提供的一种子弹抽象模型的示意图;
图6为本发明实施例提供的一种Y型块抽象模型的示意图;
图7为本发明实施例提供的一种抽象模型的构建装置的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,现有的建模方法存在学习难度较高、构建复杂程度较高等问题,基于此,本发明实施提供了一种抽象模型的构建方法、装置及电子设备,可以有效降低抽象模型的构建难度,极大地降低了用户构建抽象模型的工作量。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种抽象模型的构建方法进行详细介绍,参见图1所示的一种抽象模型的构建方法的流程示意图,该方法主要包括以下步骤S102至步骤S106:
步骤S102,基于预先配置的多个基本形状定义目标元素集合。
其中,目标元素集合包括至少一个子元素,子元素为基本形状或中间元素,中间元素包括基本形状和/或其他中间元素,基本形状可以包括但不限于长方体、球体、圆柱、圆锥、棱柱、棱锥等,目标元素集合可包括一个或多个子元素,子元素可以是基本形状,也可以是另一个元素集合(也即,中间元素)。为便于对上述目标元素集合进行理解,本发明实施例示例性提供了一种目标元素集合,参见图2所示的一种目标元素集合的示意图,目标元素集合包括子元素1(长方体A)、子元素2(长方体B)和子元素3(中间元素C),中间元素C又包括中间元素C的子元素1(长方体D)、中间元素C的子元素2(长方体E)和中间元素C的子元素3(中间元素F),中间元素F又包括中间元素F的子元素1(长方体G)和中间元素F的子元素2(长方体H)。
步骤S104,获取用户针对目标元素集合中各个子元素设定的元素参数。
其中,元素参数包括目标元素属性参数和目标坐标变换参数。目标元素属性参数可以包括子元素中各个基本形状的尺寸或位置坐标等,诸如以长方体为例,目标元素属性参数可以包括长方体的类型标识符“__box__”、X轴方向的边长、Y轴方向的边长和Z轴方向的边长等。目标坐标变换参数可以理解为坐标变换操作对应的参数,坐标变换操作的类型至少包括基于向量的平移操作、基于点到点的移动操作、基于点到面的移动操作、旋转操作,以基于点到点的平移操作为例,该坐标变换类型对应的目标坐标变换参数可以包括起始点坐标和目标点坐标。
步骤S106,基于目标元素属性参数和目标坐标变换参数生成目标抽象模型。
在一种实施方式中,可以基于目标元素属性参数生成各个子元素对应的三维模型,再基于目标坐标变换参数对各个子元素对应的三维模型进行坐标变换操作,从而得到目标抽象模型。
本发明实施例提供的上述抽象模型的构建方法,基于预先配置的多个基本形状定义目标元素集合,可以基于目标元素集合的元素参数生成目标抽象模型,采用本发明实施例提供的上述抽象模型的构建方法,用户几乎不需要掌握编程知识便可快速地构建所需的抽象模型,相较于现有技术,本发明实施例可以有效降低抽象模型的构建难度,极大地降低了用户构建抽象模型的工作量。
对于上述步骤S102,本发明实施例提供了一种基于预先配置的多个基本形状定义目标元素集合的实施方式。预先定义一些基本形状,基本形状包括但不限于长方体、球体、圆柱、圆锥、棱柱、棱锥。基本形状的类型使用唯一的类型标识符表示,不同的基本形状存在若干与之对应的初始元素属性参数,例如下表1所示的一种初始元素属性参数,以长方体的基本形状为例,该基本形状的类型标识符为“__box__”,初始元素属性参数可以包括“x”、“y”和“z”,其中,“x”的含义为“X轴方向边长”,“y”的含义为“Y轴方向边长”,“z”的含义为“Z轴方向边长”。
表1
在上述基本形状的基础上定义目标元素集合,目标元素集合可以包含一个或多个子元素,子元素可以是基本形状,也可以是另一个元素集合。每个组合元素包含一系列用户自定义参数,包括子元素参数(也即元素属性参数)和集合自身参数(也即坐标变换参数),子元素参数用于对子元素中的参数进行设置修改,集合自身参数用于描述集合内子元素之间的位置关系,例如夹角、偏移量等。
在实际应用中,目标元素集合包含一个或多个用户自定义的坐标变换操作,坐标变换类型包括但不限于基于向量的平移操作、基于点到点的移动操作、基于点到面的移动操作、旋转操作,其中,基于向量的平移操作可以理解为按照指定向量进行平移,基于点到点的移动操作可以理解为从指定点移动到指定点,基于点到面的移动操作可以理解为从指定点移动到指定面,旋转操作可以理解为绕指定轴旋转指定角度。
上述坐标变换操作可以操作单个子元素,也可以对多个子元素同时进行操作,每个坐标变换操作包含一个或多个与之对应的可变参数,该可变参数也即坐标变换参数,可选的,可变参数可以有常量指定,也可由组合元素自身参数指定。参见如下表2所示的一种坐标变换操作,其中,按指定向量进行平移“move”的可变参数包括平移向量,从指定点移动到指定点“point2point”的可变参数包括起始点和目标点,从指定点移动到指定面“point2plane”的可变参数包括起始点和目标面,绕指定轴旋转指点角度“rotate”的可变参数包括旋转角度和旋转轴。
表2
坐标变换操作类型 | 可变参数 | 描述 |
move | 平移向量 | 按指定向量进行平移 |
point2point | 起始点、目标点 | 从指定点移动到指定点 |
point2plane | 起始点、目标面 | 从指定点移动到指定面 |
rotate | 旋转角度、旋转轴 | 绕指定轴旋转指点角度 |
另外,为了便于描述集合内所述子元素之间的位置关系,本发明实施例还为基本形状配置了参考参数,其中,参考参数包括参考点、参考线和参考面中的一种或多种。参考点可以为基本形状的中心点、顶点,参考线可以为基本形状的边、轴,参考面可以为基本形状的面,为了方便用户记忆,采用坐标轴(X、Y、Z)和方向(正方向、负方向)来表示所述参考点、参考线、参考面。参见如下表3所示的一种参考面,以长方体的基础形状为例,参考面可以包括“+x面”、“+y面”、“+z面”、“-x面”、“-y面”、“-z面”等,其中,参考面“+x面”可以理解为面法线为X轴方向且位于X轴正方向的面,参考面“+y面”可以理解为面法线为Y轴方向且位于Y轴正方向的面,参考面“+z面”可以理解为面法线为Z轴方向且位于Z轴正方向的面,参考面“-x面”可以理解为面法线为X轴方向且位于X轴负方向的面,参考面“-y面”可以理解为面法线为Y轴方向且位于Y轴负方向的面,参考面“-z面”可以理解为面法线为Z轴方向且位于Z轴负方向的面。
表3
参见如下表4所示的一种参考点,以长方体的基础形状为例,参考点可以包括“+x点”、“-x点”、“+x+y点”、“-x-y点”、“+x+y+z点”、“-x-y-z点”等,参考点“+x点”可以理解为+x面的中心点,参考点“-x点”可以理解为-x面的中心点,参考点“+x+y点”可以理解为+x面与+y面所交边的中心点,参考点“-x-y点”可以理解为-x面与-y面所交边的中心点,参考点“+x+y+z点”可以理解为+x面、+y面、+z面所交的点,参考点“-x-y-z点”可以理解为-x面、-y面、-z面所交的点。
表4
对于前述步骤S104,本发明实施例提供了一种获取用户针对目标元素集合中各个子元素设定的元素参数的实施方式,可以首先读取目标元素集合中各个子元素的初始参数,然后获取用户针对初始参数修改得到的元素参数。其中,初始参数包括初始元素属性和初始坐标变换参数。用户可以通过修改参数即可实现抽象模型的生成,相较于现有技术中需要掌握编程基础才能对抽象模型进行描述进而生成相应抽象模型,本发明实施例可以有效降低抽象模型的生成难度。
为便于对前述步骤S106进行理解,本发明实施例提供了一种基于目标元素属性参数和目标坐标变换参数生成目标抽象模型的实施方式,参见如下步骤1至步骤3:
步骤1,基于目标元素属性参数分别生成各个子元素对应的三维模型。在一种实施方式中,可以按照如下步骤1.1至步骤1.3执行基于目标元素属性参数分别生成各个子元素对应的三维模型的步骤:
步骤1.1,递归遍历目标元素集合中的每个子元素。例如,目标元素集合包括子元素M和子元素N,其中,子元素M为基本形状长方体,子元素N为两个长方体的组合。
步骤1.2,如果该子元素为基本形状,基于基本形状的类型和该子元素的目标元素属性参数生成该子元素对应的三维模型。例如,子元素M包括长方体,该基本形状的类型标识符为“__box__”,目标元素属性参数包括X轴、Y轴和Z轴三个方向的边长,从而基于目标元素属性参数生成相应尺寸的长方体。
步骤1.3,如果该子元素为中间元素,采用递归方式基于该子元素的目标元素属性参数生成该子元素对应的三维模型。例如,子元素N包括基本形状长方体N1和基本形状长方体N2,则将采用递归方式先基于长方体N1的类型和目标元素属性参数生成长方体N1对应的三维模型,再基于长方体N2的类型和目标元素属性参数生成长方体N2对应的三维模型,从而将长方体N1对应的三维模型和长方体N2对应的三维模型的组合作为该子元素N对应的三维模型。
步骤2,基于目标坐标变换参数对各个子元素对应的三维模型分别进行坐标变换操作。本发明实施例示例性提供了以下两种目标坐标变换的配置方式:方式一,基于预设常量设置所述目标坐标变换参数;方式二,如果所述目坐标变换参数的值类型为指定形式,基于所述目标元素属性参数设置所述目标坐标变换参数,其中,指定形式可以为字符串并以特定符号(例如“$”)开头。
基于此,本发明实施例提供了一种基于目标坐标变换参数对各个子元素对应的三维模型分别进行坐标变换操作的实施方式,参见如下步骤2.1至步骤2.2:
步骤2.1,遍历目标元素集合中的每个目标坐标变换参数。例如,目标元素集合包括子元素M和子元素N,其中,子元素M为基本形状长方体,子元素N为两个长方体的组合,且子元素M无坐标变换操作,子元素N的坐标变换操作的类型为基于点对点的平移操作,其目标坐标变换参数包括起始点X和目标点Y。
步骤2.2,对于每个目标坐标变换参数,根据预先配置的参考参数、该目标坐标变换参数和该目标坐标变换参数的坐标变换类型,对目标元素集合中指定的子元素对应的三维模型进行坐标变换操作。例如,将针对子元素B执行基于点对点的平移操作,从子元素B从起始点X移动至目标点Y。
步骤3,合并坐标变换操作后的各个子元素对应的三维模型,得到目标抽象模型。
为便于对前述实施例提供的抽象模型的构建方法进行理解,本发明实施例提供了以下抽象模型的构建方法的应用示例,(1)读取目标元素集合中所定义的子元素参数,并对目标元素集合中相应子元素的参数进行修改;(2)递归遍历每一个子元素,若子元素为基本形状,则通过基本形状的类型和相关参数生成三维模型,若子元素为子集合,则采用递归的方式生成三维模型;(3)依次遍历目标元素集合中的每一个坐标变换操作,根据坐标变换操作的类型以及可变参数对目标元素集合中指定的子元素(单个或多个)的三维模型进行坐标变换;(4)合并所有子元素的三维模型得到目标三维模型。
在具体实现时,首先使用JSON(JavaScript Object Notation,JS对象简谱),XML(Extensible Markup Language,可扩展标记语言)、YAML(YAML Ain't a MarkupLanguage)、TOML(Tom's Obvious,Minimal Language)等格式文件按上述方式定义目标元素集合。本发明实施例以JSON格式进行举例,整个目标元素集合为一个对象,包含如下表5所示的字段,其中,elements用于定义目标元素集合(简称集合)的所有子元素,args用于定义集合的子元素参数和集合自身参数,trans用于定义集合的坐标变换操作,上述elements、args和trans的值类型均为对象数组。
表5
字段名 | 字段解释 | 值类型 | 备注 |
elements | 定义集合的所有子元素 | 对象数组 | |
args | 定义集合的子元素参数和集合自身参数 | 对象数组 | |
trans | 定义集合的坐标变换操作 | 对象数组 |
为便于对对象数组elements进行理解,参见下表6所示的一种elements,每个对象可以包括以下字段:category、name和desc,其中,category用于定义子元素的类型,name用于定义子元素的名称,desc用于子元素描述,且上述category、name和desc的值类型均为字符串。
表6
字段名 | 字段解释 | 值类型 | 备注 |
category | 定义子元素的类型 | 字符串 | |
name | 定义子元素的名称 | 字符串 | |
desc | 子元素描述 | 字符串 | 可选 |
为便于对对象数组args进行理解,参见下表7所示的一种args,每个对象可以包括以下字段:name、v和desc,其中,name用于定义参数名,v用于定义参数值,desc用于参数描述,且上述name和desc的值类型均为字符串,v的值类型为字符串、number或数组。
表7
字段名 | 字段解释 | 值类型 | 备注 |
name | 定义参数名 | 字符串 | |
v | 定义参数值 | 字符串、Number或数组 | |
desc | 参数描述 | 字符串 | 可选 |
为便于对对象数组trans进行理解,参见下表8所示的一种trans,每个对象可以包括以下字段:name、move、point2point、point2plane和rotate,其中,name用于定义参数名,move用于定义平移操作的平移向量,point2point用于定义点到点移动操作的起始点和目标点,point2plane用于定义点到面移动操作的起始点和目标面,rotate用于定义旋转操作的旋转角度和旋转轴,且上述name的值类型为字符串,move、point2point、point2plane和rotate的值类型均为数组。
表8
字段名 | 字段解释 | 值类型 | 备注 |
name | 定义参数名 | 字符串 | |
move | 定义平移操作的平移向量 | 数组 | 可选 |
point2point | 定义点到点移动操作的起始点、目标点 | 数组 | 可选 |
point2plane | 定义点到面移动操作的起始点、目标面 | 数组 | 可选 |
rotate | 定义旋转操作的旋转角度、旋转轴 | 数组 | 可选 |
在上述对像数组的基础上,本发明实施了提供如下所示的应用示例,具体参见如下实施例一至实施例四:
实施例一,以生成L块抽象模型为例,参见图3所示的一种L块抽象模型的示意图,其JSON定义为:
{"elements":[{"category":"__box__","name":"A","desc":"长方体A"},{"category":"__box__","name":"B","desc":"长方体B"}],"args":[{"name":"A__x","v":20},{"name":"A__y","v":20},{"name":"B__y","v":20},{"name":"B__z","v":20},{"name":"B__x","v":100},{"name":"A__z","v":60}],"trans":[{"group":["A"],"point2point":["A.-x+z","B.-x-z"]},{"group":["A","B"],"point2point":["B.+x+z",[0,0,0]]}]}
根据以上JSON定义,可以解析出L块三维模型包含2个子元素,长方体A和长方体B,其中,长方体A尺寸为[20,20,60],长方体B尺寸为[100,20,20],再执行trans数组所定义的坐标变换操作,具体的,将长方体A从长方体A的-x+z参考点移动到长方体B的-x-z参考点,以及将长方体A、长方体B从长方体B的+x+z参考点移动到坐标原点[0,0,0]。本发明实施例通过对集合中的所有子元素执行point2point操作从指定点移动到坐标原点,可实现将集合的指定点设置为坐标原点。
实施例二,以生成U型块抽象模型为例,参见图4所示的一种U型块抽象模型的示意图,该U型块抽象模型由双L块组成,其JSON定义为:
{"elements":[{"category":"L","name":"L1","desc":"第一L块"},{"category":"L","name":"L2","desc":"第二L块"}],"args":[{"name":"L1__A__z","v":200},{"name":"L2__A__z","v":150}],"trans":[{"group":["L1"],"rotate":[180,"+z"]}]}
根据以上JSON定义,可以解析出U型块抽象模型包含2个子元素,第一L块和第二L块,其数模由实施例一的L块JSON格式文件定义,其中,第一L块的长方体A的参数z为200,第二L块的长方体A的参数z为150。然后执行trans数组所定义的坐标变换操作,将第一L块绕着Z轴的正方向旋转180度,即可得到图4所示的U型块抽象模型。
实施例三,以生成子弹抽象模型为例,参见图5所示的一种子弹抽象模型的示意图,其JSON定义为:
{"elements":[{"category":"__cylinder__","name":"A","desc":"圆柱A"},{"category":"__cone__","name":"B","desc":"圆锥B"}],"args":[{"name":"B__r","v":20},{"name":"B__h","v":40},{"name":"A__r","v":20},{"name":"A__h","v":120}],"trans":[{"group":["B"],"point2point":["B.-z","A.+z"]}]}
根据以上JSON定义,可以解析出子弹抽象模型包含2个子元素,圆柱A和圆锥B,其中,圆柱A半径为20且高为120,圆锥B半径为20且高为40。然后执行trans数组所定义的坐标变换操作,将圆锥B从圆锥B的-z参考点移动到圆柱A的+z参考点,即可得到如图5所示的子弹抽象模型。
实施例四,以生成Y型块抽象模型为例,参见图6所示的一种Y型块抽象模型的示意图,其JSON定义为:
{"elements":[{"category":"__box__","name":"A","desc":"长方体A"},{"category":"__box__","name":"B","desc":"长方体B"}],"args":[{"name":"A__x","v":80},{"name":"A__y","v":20},{"name":"A__z","v":20},{"name":"B__x","v":100},{"name":"B__y","v":20},{"name":"B__z","v":20},{"name":"angle","v":45,"desc":"旋转角度"}],"trans":[{"group":["A"],"rotate":["$angle","-z"]},{"group":["A"],"point2point":["A.+x-y","B.-x-y"]},{"group":["A","B"],"point2point":["B.+x+z",[0,0,0]]}]}
上述JSON中,“angle”参数为集合自身参数,用来定义下面"rotate"坐标变换操作的旋转角度。本发明实施例在定义坐标变换操作的可变参数时,若可变参数的值类型为字符串并以特定符号(本实施例中使用$)开头,则该可变参数的值由该值所对应的集合自身参数定义。例如上述实施例四中,"rotate":["$angle","-z"],其中"$angle"表示集合自身参数angle所对应的值。根据以上JSON定义,可以解析出Y型块抽象模型包含2个子元素长方体A和长方体B,其中,长方体A尺寸为[80,20,20],长方体B尺寸为[100,20,20]。然后执行trans数组所定义的坐标变换操作,将长方体A绕Z轴的负方向旋转angle度(即45度),将长方体A从长方体A的+x-y参考点移动到长方体B的-x-y参考点,将长方体A、长方体B从长方体B的+x+z参考点移动到坐标原点[0,0,0],即可得到图6所示的Y型块抽象模型。
应当注意的是,对上述实施例中所定义的JSON格式对一些更改,例如修改字段名,修改结构,但所定义的内容大体与本方案大体相同的话,显然也属于本发明实施例的保护范围。
综上所述,本发明实施例提供的上述抽象模型的构建方法,可以通过JSON、XML等数模描述格式快速构建各种复杂的抽象模型。
对于前述实施例提供的抽象模型的构建方法,本发明实施例提供了一种抽象模型的构建装置,参见图7所示的一种抽象模型的构建装置的结构示意图,该装置主要包括以下部分:
集合定义模块702,用于基于预先配置的多个基本形状定义目标元素集合;其中,所述目标元素集合包括至少一个子元素,所述子元素为所述基本形状或中间元素,所述中间元素包括所述基本形状和/或其他中间元素;
参数获取模块704,用于获取用户针对目标元素集合中各个子元素设定的元素参数;其中,元素参数包括目标元素属性参数和目标坐标变换参数;
模型生成模块706,用于基于目标元素属性参数和目标坐标变换参数生成目标抽象模型。
本发明实施例提供的上述抽象模型的构建装置,基于预先配置的多个基本形状定义目标元素集合,可以基于目标元素集合的元素参数生成目标抽象模型,采用本发明实施例提供的上述抽象模型的构建方法,用户几乎不需要掌握编程知识便可快速地构建所需的抽象模型,相较于现有技术,本发明实施例可以有效降低抽象模型的构建难度,极大地降低了用户构建抽象模型的工作量。
在一种实施方式中,参数获取模块704还用于:读取目标元素集合中各个子元素的初始参数;其中,初始参数包括初始元素属性和初始坐标变换参数;获取所述用户针对所述初始参数修改得到的元素参数。
在一种实施方式中,模型生成模块706还用于:基于目标元素属性参数分别生成各个子元素对应的三维模型;基于目标坐标变换参数对各个子元素对应的三维模型分别进行坐标变换操作;合并坐标变换操作后的各个子元素对应的三维模型,得到目标抽象模型。
在一种实施方式中,模型生成模块706还用于:递归遍历目标元素集合中的每个子元素;如果该子元素为基本形状,基于基本形状的类型标识符和该子元素的目标元素属性参数生成该子元素对应的三维模型;如果该子元素为中间元素,采用递归方式基于该子元素的目标元素属性参数生成该子元素对应的三维模型。
在一种实施方式中,上述装置还包括配置模块,用于:如果所述目坐标变换参数的值类型为指定形式,基于所述目标元素属性参数设置所述目标坐标变换参数;和/或,如果所述目标坐标变换参数的值类型不为所述指定形式,基于预设常量设置所述目标坐标变换参数。
在一种实施方式中,模型生成模块706还用于:遍历目标元素集合中的每个目标坐标变换参数;对于每个目标坐标变换参数,根据预先配置的参考参数、该目标坐标变换参数和该目标坐标变换参数对应的坐标变换类型,对目标元素集合中指定的子元素对应的三维模型进行坐标变换操作。
在一种实施方式中,参考参数包括参考点、参考线、参考面中的一种或多种。
在一种实施方式中,坐标变换类型至少包括基于向量的平移操作、基于点到点的平移操作、基于点到面的平移操作、旋转操作。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例提供了一种电子设备,具体的,该电子设备包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被处理器运行时执行如上实施方式的任一项的方法。
图8为本发明实施例提供的一种电子设备的结构示意图,该电子设备100包括:处理器80,存储器81,总线82和通信接口83,所述处理器80、通信接口83和存储器81通过总线82连接;处理器80用于执行存储器81中存储的可执行模块,例如计算机程序。
其中,存储器81可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口83(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线82可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器81用于存储程序,所述处理器80在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器80中,或者由处理器80实现。
处理器80可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器80中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器80可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器81,处理器80读取存储器81中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见前述方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种抽象模型的构建方法,其特征在于,包括:
基于预先配置的多个基本形状定义目标元素集合;其中,所述目标元素集合包括至少一个子元素,所述子元素为所述基本形状或中间元素,所述中间元素包括所述基本形状和/或其他中间元素;
获取用户针对所述目标元素集合中各个所述子元素设定的元素参数;其中,所述元素参数包括目标元素属性参数和目标坐标变换参数;
基于所述目标元素属性参数和所述目标坐标变换参数生成目标抽象模型;
其中,所述获取用户针对所述目标元素集合设定的元素参数的步骤,包括:
读取所述目标元素集合中各个所述子元素的初始参数;其中,所述初始参数包括初始元素属性参数和初始坐标变换参数;
获取所述用户针对所述初始参数修改得到的元素参数;
所述基于所述目标元素属性参数和所述目标坐标变换参数生成目标抽象模型的步骤,包括:
基于所述目标元素属性参数分别生成各个所述子元素对应的三维模型;
基于所述目标坐标变换参数对各个所述子元素对应的三维模型分别进行坐标变换操作;
合并所述坐标变换操作后的各个子元素对应的三维模型,得到目标抽象模型;
所述基于所述目标元素属性参数分别生成各个所述子元素对应的三维模型的步骤,包括:
递归遍历所述目标元素集合中的每个子元素;
如果该子元素为所述基本形状,基于所述基本形状的类型和该子元素的目标元素属性参数生成该子元素对应的三维模型;
如果该子元素为所述中间元素,采用递归方式基于该子元素的目标元素属性参数生成该子元素对应的三维模型。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述目标坐标变换参数的值类型为指定形式,基于所述目标元素属性参数设置所述目标坐标变换参数;和/或,
如果所述目标坐标变换参数的值类型不为所述指定形式,基于预设常量设置所述目标坐标变换参数。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标坐标变换参数对各个所述子元素对应的三维模型分别进行坐标变换操作的步骤,包括:
遍历所述目标元素集合中的每个目标坐标变换参数;
对于每个目标坐标变换参数,根据预先配置的参考参数、该目标坐标变换参数和该目标坐标变换参数的坐标变换类型,对所述目标元素集合中指定的子元素对应的三维模型进行坐标变换操作。
4.根据权利要求3所述的方法,其特征在于,所述参考参数包括参考点、参考线、参考面中的一种或多种。
5.根据权利要求3所述的方法,其特征在于,所述坐标变换类型至少包括基于向量的平移操作、基于点到点的移动操作、基于点到面的移动操作、旋转操作。
6.一种抽象模型的构建装置,其特征在于,包括:
集合定义模块,用于基于预先配置的多个基本形状定义目标元素集合;其中,所述目标元素集合包括至少一个子元素,所述子元素为所述基本形状或中间元素,所述中间元素包括所述基本形状和/或其他中间元素;
参数获取模块,用于获取用户针对所述目标元素集合中各个所述子元素设定的元素参数;其中,所述元素参数包括目标元素属性参数和目标坐标变换参数;
模型生成模块,用于基于所述目标元素属性参数和所述目标坐标变换参数生成目标抽象模型;
其中,所述获取用户针对所述目标元素集合设定的元素参数的步骤,包括:
读取所述目标元素集合中各个所述子元素的初始参数;其中,所述初始参数包括初始元素属性参数和初始坐标变换参数;
获取所述用户针对所述初始参数修改得到的元素参数;
所述基于所述目标元素属性参数和所述目标坐标变换参数生成目标抽象模型的步骤,包括:
基于所述目标元素属性参数分别生成各个所述子元素对应的三维模型;
基于所述目标坐标变换参数对各个所述子元素对应的三维模型分别进行坐标变换操作;
合并所述坐标变换操作后的各个子元素对应的三维模型,得到目标抽象模型;
所述基于所述目标元素属性参数分别生成各个所述子元素对应的三维模型的步骤,包括:
递归遍历所述目标元素集合中的每个子元素;
如果该子元素为所述基本形状,基于所述基本形状的类型和该子元素的目标元素属性参数生成该子元素对应的三维模型;
如果该子元素为所述中间元素,采用递归方式基于该子元素的目标元素属性参数生成该子元素对应的三维模型。
7.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1至5任一项所述的方法。
8.一种计算机存储介质,其特征在于,用于储存为权利要求1至5任一项所述方法所用的计算机软件指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011596079.0A CN112668066B (zh) | 2020-12-29 | 2020-12-29 | 抽象模型的构建方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011596079.0A CN112668066B (zh) | 2020-12-29 | 2020-12-29 | 抽象模型的构建方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112668066A CN112668066A (zh) | 2021-04-16 |
CN112668066B true CN112668066B (zh) | 2024-04-12 |
Family
ID=75411981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011596079.0A Active CN112668066B (zh) | 2020-12-29 | 2020-12-29 | 抽象模型的构建方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112668066B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389375B1 (en) * | 1999-01-22 | 2002-05-14 | Interlego Ag | Virtual reality modelling |
CN110942515A (zh) * | 2019-11-26 | 2020-03-31 | 北京迈格威科技有限公司 | 基于点云的目标物体三维计算机建模方法和目标识别方法 |
CN111597622A (zh) * | 2020-05-26 | 2020-08-28 | 同济大学建筑设计研究院(集团)有限公司 | 三维模型的构建方法、装置、计算机设备和存储介质 |
CN112132935A (zh) * | 2020-09-22 | 2020-12-25 | 上海米哈游天命科技有限公司 | 模型元素的形变处理、画面渲染方法、装置、设备及介质 |
CN112132938A (zh) * | 2020-09-22 | 2020-12-25 | 上海米哈游天命科技有限公司 | 模型元素的形变处理、画面渲染方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140511B2 (en) * | 2013-03-13 | 2018-11-27 | Kofax, Inc. | Building classification and extraction models based on electronic forms |
-
2020
- 2020-12-29 CN CN202011596079.0A patent/CN112668066B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389375B1 (en) * | 1999-01-22 | 2002-05-14 | Interlego Ag | Virtual reality modelling |
CN110942515A (zh) * | 2019-11-26 | 2020-03-31 | 北京迈格威科技有限公司 | 基于点云的目标物体三维计算机建模方法和目标识别方法 |
CN111597622A (zh) * | 2020-05-26 | 2020-08-28 | 同济大学建筑设计研究院(集团)有限公司 | 三维模型的构建方法、装置、计算机设备和存储介质 |
CN112132935A (zh) * | 2020-09-22 | 2020-12-25 | 上海米哈游天命科技有限公司 | 模型元素的形变处理、画面渲染方法、装置、设备及介质 |
CN112132938A (zh) * | 2020-09-22 | 2020-12-25 | 上海米哈游天命科技有限公司 | 模型元素的形变处理、画面渲染方法、装置、设备及介质 |
Non-Patent Citations (6)
Title |
---|
Java3D二次开发在物流设备三维造型中的应用;韩冰 等;计算机应用研究;20200630(S1);1-5 * |
一种UML模型到XML模型的转换方法;王建光;段富;;计算机技术与发展(07);1-7 * |
一种可视化代码生成器的研究及应用;阳林 等;科研信息化技术与应用;第7卷(第2期);66-70 * |
基于OpenGL的管线三维模型的可视化研究;蒋玉祥;;科技信息(06);1-5 * |
基于QT+OpenGL的弹簧参数化实体建模;李凡 等;制造技术与机床;20180602(06);1-6 * |
阳林 等. 一种可视化代码生成器的研究及应用.科研信息化技术与应用.2016,第7卷(第2期),66-70. * |
Also Published As
Publication number | Publication date |
---|---|
CN112668066A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112767489B (zh) | 一种三维位姿确定方法、装置、电子设备及存储介质 | |
US20200327079A1 (en) | Data processing method and device, dma controller, and computer readable storage medium | |
US20200327078A1 (en) | Data processing method and device, dma controller, and computer readable storage medium | |
CN111323751B (zh) | 声源定位方法、装置及存储介质 | |
US20210150325A1 (en) | Data processing method and apparatus, and related product | |
CN112861934A (zh) | 一种嵌入式终端的图像分类方法、装置及嵌入式终端 | |
CN110895823A (zh) | 一种三维模型的纹理获取方法、装置、设备及介质 | |
CN113065180A (zh) | Gim解析方法和装置、设备及存储介质 | |
CN109726755A (zh) | 一种图片标注方法、装置及电子设备 | |
CN112417569A (zh) | 一种Revit图元标注方法、装置、设备及储存介质 | |
CN111985459A (zh) | 表格图像校正方法、装置、电子设备和存储介质 | |
CN111353002A (zh) | 网络表示学习模型的训练方法、装置、电子设备及介质 | |
CN109961516B (zh) | 表面获取方法、装置及非暂态电脑可读取记录媒体 | |
CN112668066B (zh) | 抽象模型的构建方法、装置及电子设备 | |
CN117372286B (zh) | 一种基于Python的图像噪声优化方法及系统 | |
CN108875901B (zh) | 神经网络训练方法以及通用物体检测方法、装置和系统 | |
CN112669418A (zh) | 一种模型渲染的方法及装置 | |
CN112529984B (zh) | 绘制多边形的方法、装置、电子设备及存储介质 | |
CN115145565A (zh) | 一种基于规则引擎的数据可视化大屏布局方法与装置 | |
CN113971630A (zh) | 三维结构图转换二维三视图的投图姿态推荐方法和装置 | |
CN115185524A (zh) | 向量指令的识别方法、装置、电子设备及计算机可读存储介质 | |
CN115525265A (zh) | 一种应用可视化开发方法、装置、电子设备和存储介质 | |
CN111507265A (zh) | 表格关键点检测模型训练方法、装置、设备以及存储介质 | |
CN109840945A (zh) | 有限元预处理方法及装置 | |
KR101755206B1 (ko) | 스케일러블 벡터 그래픽의 워핑 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |