Как установить размер модели 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?

0 ответов

Другие вопросы по тегам