Как установить размер модели gmsh в Python
Когда я использую следующий код, чтобы открыть файл iges без единиц измерения, координаты точек сгенерированной модели увеличиваются в 1000 раз.
def LoadIges(self, filename, lcf=None):
gmsh.initialize()
# try:
gmsh.open(filename)
nodes = gmsh.model.getEntities(0)
def lc(dim, tag, x, y, z, lc):
if lcf:
return lc / lcf
else:
return lc
gmsh.model.mesh.setSizeCallback(lc)
gmsh.model.mesh.generate(2)
for node in nodes:
coords = gmsh.model.getValue(node[0], node[1], [])
knode = KNode(study=self, tag=node[1], coord=coords)
self._knodes[node[1]] = knode
curves = gmsh.model.getEntities(1)
for curve in curves:
upward, downward = gmsh.model.getAdjacencies(curve[0], curve[1])
line = Line(study=self, tag=curve[1], points=downward)
line.process_nodes()
self._lines[curve[1]] = line
surfaces = gmsh.model.getEntities(2)
for surface in surfaces:
upward, downward = gmsh.model.getAdjacencies(
surface[0], surface[1])
area = Area(study=self, tag=surface[1], lines=downward)
area.process_nodes()
area.mesh = Mesh(surface[0], surface[1])
area._polydata = area.mesh.polydata
self._areas[surface[1]] = area
volumes = gmsh.model.getEntities(3)
for volume in volumes:
upward, downward = gmsh.model.getAdjacencies(volume[0], volume[1])
shell = Shell(study=self, tag=volume[1], areas=downward)
self._shells[volume[1]] = shell
shell.mesh = Mesh(volume[0], volume[1])
shell._polydata = shell.mesh.polydata
if '%d' % (volume[1]) in self._density_of_volumes.keys():
try:
self.getParameterByName("density").value = float(
self._density_of_volumes['%d' % (volume[1])])
except:
pass
# except Exception as e:
# pass
msh = Mesh()
self._eg = msh.polydata
#test_points = self._eg.points
gmsh.finalize()
Могу ли я решить вышеуказанную проблему, установив размер модели gmsh в Python?