示例#1
0
文件: nodes.py 项目: hurlei/pyNastran
    def write_card_8(self):
        """
        Writes a GRID card in 8-field format
        """
        xyz = self.xyz
        cp = self.Cp()
        cd = self.Cd()

        cps = set_string8_blank_if_default(cp, 0)
        if [cd, self.ps, self.seid] == [0, '', 0]:
            # default
            msg = 'GRID    %8i%8s%s%s%s\n' % (
                self.nid, cps,
                print_float_8(xyz[0]),
                print_float_8(xyz[1]),
                print_float_8(xyz[2]))
            return self.comment + msg
        else:
            cds = set_string8_blank_if_default(cd, 0)
            seid = set_string8_blank_if_default(self.SEid(), 0)
            msg = 'GRID    %8i%8s%s%s%s%s%8s%s\n' % (
                self.nid, cps,
                print_float_8(xyz[0]),
                print_float_8(xyz[1]),
                print_float_8(xyz[2]),
                cds, self.ps, seid)
            return self.comment + msg
示例#2
0
 def write_card_8(self, bdf_file=None):
     # type: () -> str
     """
     Writes a GRID card in 8-field format
     """
     assert bdf_file is not None
     self.make_current()
     msg = ''
     for nid, xyz, cp, cd, ps, seid in zip(self.nid, self.xyz, self.cp,
                                           self.cd, self.ps, self.seid):
         cps = set_string8_blank_if_default(cp, 0)
         if [cd, ps, seid] == [0, '', 0]:
             # default
             print_float_8(xyz[0])
             print_float_8(xyz[1])
             print_float_8(xyz[2])
             msgi = 'GRID    %8i%8s%s%s%s\n' % (
                 nid,
                 cps,
                 print_float_8(xyz[0]),
                 print_float_8(xyz[1]),
                 print_float_8(xyz[2]),
             )
         else:
             cds = set_string8_blank_if_default(cd, 0)
             seids = set_string8_blank_if_default(seid, 0)
             msgi = 'GRID    %8i%8s%s%s%s%s%8s%s\n' % (
                 nid, cps, print_float_8(xyz[0]), print_float_8(
                     xyz[1]), print_float_8(xyz[2]), cds, ps, seids)
         msg += self.comment[nid] + msgi
     bdf_file.write(msg)
     return msg
示例#3
0
    def write_card_8(self):
        # type: () -> str
        """
        Writes a GRID card in 8-field format
        """
        xyz = self.xyz
        cp = self.Cp()
        cd = self.Cd()

        cps = set_string8_blank_if_default(cp, 0)
        if [cd, self.ps, self.seid] == [0, '', 0]:
            # default
            msg = 'GRID    %8i%8s%s%s%s\n' % (
                self.nid, cps,
                print_float_8(xyz[0]),
                print_float_8(xyz[1]),
                print_float_8(xyz[2]))
            return self.comment + msg
        else:
            cds = set_string8_blank_if_default(cd, 0)
            seid = set_string8_blank_if_default(self.SEid(), 0)
            msg = 'GRID    %8i%8s%s%s%s%s%8s%s\n' % (
                self.nid, cps,
                print_float_8(xyz[0]),
                print_float_8(xyz[1]),
                print_float_8(xyz[2]),
                cds, self.ps, seid)
            return self.comment + msg
示例#4
0
 def write_card_8(self):
     """
     Writes a GRID card in 8-field format
     """
     xyz = self.xyz
     cp = set_string8_blank_if_default(self.Cp(), 0)
     cd = set_string8_blank_if_default(self.Cd(), 0)
     seid = set_string8_blank_if_default(self.SEid(), 0)
     msg = '%-8s%8i%8s%s%s%s%s%8s%s\n' % (
         'GRID', self.nid, cp,
         print_float_8(xyz[0]),
         print_float_8(xyz[1]),
         print_float_8(xyz[2]),
         cd, self.ps, seid)
     return self.comment + msg.rstrip() + '\n'
示例#5
0
文件: cbar.py 项目: ratalex/pyNastran
    def write_card(self, bdf_file, size=8, element_ids=None):
        if self.n:
            if element_ids is None:
                i = arange(self.n)
            else:
                i = searchsorted(self.element_id, self.element_id)

            for (eid, pid, n, is_g0, g0, x, offt, pin, wa,
                 wb) in zip(self.element_id[i], self.property_id[i],
                            self.node_ids[i], self.is_g0[i], self.g0[i],
                            self.x[i], self.offt[i], self.pin_flags[i],
                            self.wa[i], self.wb[i]):

                pa = set_blank_if_default(pin[0], 0)
                pb = set_blank_if_default(pin[1], 0)

                w1a = set_blank_if_default(wa[0], 0.0)
                w2a = set_blank_if_default(wa[1], 0.0)
                w3a = set_blank_if_default(wa[2], 0.0)
                w1b = set_blank_if_default(wb[0], 0.0)
                w2b = set_blank_if_default(wb[1], 0.0)
                w3b = set_blank_if_default(wb[2], 0.0)
                x1 = g0 if is_g0 else x[0]
                x2 = 0 if is_g0 else x[1]
                x3 = 0 if is_g0 else x[2]

                offt = set_string8_blank_if_default(offt, 'GGG')
                card = [
                    'CBAR', eid, pid, n[0], n[1], x1, x2, x3, offt, pa, pb,
                    w1a, w2a, w3a, w1b, w2b, w3b
                ]
                if size == 8:
                    bdf_file.write(print_card_8(card))
                else:
                    bdf_file.write(print_card_16(card))
示例#6
0
    def write_card(self, f, size=8, element_ids=None):
        if self.n:
            if element_ids is None:
                i = arange(self.n)
            else:
                i = searchsorted(self.element_id, self.element_id)

            for (eid, pid, n, is_g0, g0, x, offt, pin, wa, wb) in zip(
                self.element_id[i], self.property_id[i], self.node_ids[i],
                self.is_g0[i], self.g0[i], self.x[i],
                self.offt[i],
                self.pin_flags[i], self.wa[i], self.wb[i]):

                pa = set_blank_if_default(pin[0], 0)
                pb = set_blank_if_default(pin[1], 0)

                w1a = set_blank_if_default(wa[0], 0.0)
                w2a = set_blank_if_default(wa[1], 0.0)
                w3a = set_blank_if_default(wa[2], 0.0)
                w1b = set_blank_if_default(wb[0], 0.0)
                w2b = set_blank_if_default(wb[1], 0.0)
                w3b = set_blank_if_default(wb[2], 0.0)
                x1 = g0 if is_g0 else x[0]
                x2 = 0 if is_g0 else x[1]
                x3 = 0 if is_g0 else x[2]

                offt = set_string8_blank_if_default(offt, 'GGG')
                card = ['CBAR', eid, pid, n[0], n[1], x1, x2, x3, offt,
                        pa, pb, w1a, w2a, w3a, w1b, w2b, w3b]
                if size == 8:
                    f.write(print_card_8(card))
                else:
                    f.write(print_card_16(card))
示例#7
0
    def write_card_16(self, is_double=False, bdf_file=None):
        # type: (bool) -> str
        """
        Writes a GRID card in 16-field format
        """
        assert bdf_file is not None
        self.make_current()
        msg = ''
        for nid, xyz, cp, cd, ps, seid in zip(
            self.nid, self.xyz, self.cp, self.cd, self.ps, self.seid):
            cps = set_string8_blank_if_default(cp, 0)
            cp = set_string16_blank_if_default(cp, 0)
            cd = set_string16_blank_if_default(cd, 0)
            seid = set_string16_blank_if_default(seid, 0)

            if is_double:
                if [cd, ps, seid] == [0, '', 0]:
                    msgi = ('GRID*   %16i%16s%16s%16s\n'
                            '*       %16s\n' % (
                                nid,
                                cp,
                                print_scientific_double(xyz[0]),
                                print_scientific_double(xyz[1]),
                                print_scientific_double(xyz[2])))
                else:
                    msgi = ('GRID*   %16i%16s%16s%16s\n'
                            '*       %16s%16s%16s%16s\n' % (
                                nid,
                                cp,
                                print_scientific_double(xyz[0]),
                                print_scientific_double(xyz[1]),
                                print_scientific_double(xyz[2]),
                                cd, ps, seid))
            else:
                if [cd, self.ps, self.seid] == [0, '', 0]:
                    msgi = ('GRID*   %16i%16s%16s%16s\n'
                            '*       %16s\n' % (
                                nid,
                                cp,
                                print_float_16(xyz[0]),
                                print_float_16(xyz[1]),
                                print_float_16(xyz[2])))
                else:
                    msgi = ('GRID*   %16i%16s%16s%16s\n'
                            '*       %16s%16s%16s%16s\n' % (
                                nid,
                                cp,
                                print_float_16(xyz[0]),
                                print_float_16(xyz[1]),
                                print_float_16(xyz[2]),
                                cd, ps, seid))
                msg += self.comment[nid] + msgi
        bdf_file.write(msg)
        return msg