3DEC导入和创建几何数据 (geometric data)

文摘   教育培训   2024-12-11 06:00   内蒙古  

1. 引言

3DEC具有导入和定义任意几何数据的能力,目前支持的文件格式有三种: dxf, stl和geom,创建后的几何信息可以进行操作修改,也可以用于可视化中的参考。可以通过由多边形形成的封闭体积来生成单元或构建块(building blocks),此外,这些数据还可以用于筛选受 3DEC 命令影响的对象,并通过分配组名称来标识某些区域中的对象。导入后的几何集名(Geometry Set Name)为文件名,但Group名可以自行定义。

导入矿坑模型(Open Pit Geometry.stl)

3DEC 将几何数据组织成集(Set),即多边形、边和节点的集合,这些数据在拓扑上是相互连接的,多边形由一系列边定义,而边由两个节点定义。


2. Geometry命令

下面的命令可以用来操作几何对象:

geometry assign-groups
geometry copy
geometry delete
geometry edge create
geometry edge delete
geometry edge export
geometry edge extra
geometry edge group
geometry export
geometry fill
geometry generate
geometry import
geometry list
geometry move-to
geometry node create
geometry node delete
geometry node export
geometry node extra
geometry node group
geometry paint-extra
geometry polygon create
geometry polygon delete
geometry polygon export
geometry polygon extra
geometry polygon group
geometry refine
geometry results
geometry rotate
geometry select
geometry separate
geometry set
geometry tessellate
geometry translate
geometry triangulate


3. 几何数据

(1) 创建几何图形集的最简单方法是使用geometry import命令。例如:
geometry import 'orebody.stl' format stl group 'ore' set 'wxc' 
(2) 使用geometry polygon create命令

使用命令行创建多边形块体的基本格式为:

geometry set 'polygons'geometry polygon create

一个基于几何数据的多边形(多面体)使用geometry polygon create来创建,这个命令可以带3个主要的关键字: by-edges,by-nodes,by-positions, 不过最常使用的关键字是by-positions,即通过点的坐标来产生多变形,与block create polygon的使用方法类似,首先顺时针产生一个长方形,然后extrude成为一个长方体,例如:

geometry polygon create by-positions ...(0,0,0) (0,0,10) (20,0,10) (20,0,0) extrude (0,5,0)

一个更万能的方法是直接定义点的坐标,从而产生出任意形状的块体。

fracture generate fracture-count 1000geometry set 'plane'geometry polygon create by-positions  (-4,-4,0) (-4,4,0) (4,4,0) (4,-4,0)geometry set 'line'geometry edge create by-position (-4,0,0) (4,0,0)fracture intersections scanline intersection-set 'scan' lines 'line' surface 'plane'

(3) 使用FISH

geom.poly.create函数能够创建或改进已经产生的多边形,这个命令通过几何集的指针返回到多边形的指针,例如:

local gset = geom.set.find("GeotechWu")    if gset = null then        gset = geom.set.create("GeotechWu")    endiflocal poly = geom.poly.create(gset)

新创建的多边形没有边,所以处于无效状态。在多边形处于有效状态之前,必须使用geom.poly.add.edge或geom.poly.add.node添加边。

fish define fish_cylinder(start,radius,height,segments)    local gset = geom.set.find("FISH Example")    if gset = null then        gset = geom.set.create("FISH Example")    endif    loop local i (1,segments)        local ang1 = float(i-1) * math.pi * 2.0 / float(segments)        local ang2 = float(i)   * math.pi * 2.0 / float(segments)        local p1 = start + vector(math.cos(ang1),math.sin(ang1),0.0)        local p2 = start + vector(math.cos(ang2),math.sin(ang2),0.0)        local p3 = vector(p2->x,p2->y,height)        local p4 = vector(p1->x,p1->y,height)        local poly = geom.poly.create(gset)        geom.poly.add.node(gset,poly,p1)        geom.poly.add.node(gset,poly,p2)        geom.poly.add.node(gset,poly,p3)        geom.poly.add.node(gset,poly,p4)        geom.poly.close(gset,poly)    end_loopend[fish_cylinder((0,0,0),1.0,4.0,40)]


计算岩土力学
2024年5月8日,《计算岩土力学》建立4周年啦!
 最新文章