当前位置: 首页>>代码示例>>Python>>正文


Python ComponentInstance.add_symbol_attribute方法代码示例

本文整理汇总了Python中upconvert.core.component_instance.ComponentInstance.add_symbol_attribute方法的典型用法代码示例。如果您正苦于以下问题:Python ComponentInstance.add_symbol_attribute方法的具体用法?Python ComponentInstance.add_symbol_attribute怎么用?Python ComponentInstance.add_symbol_attribute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在upconvert.core.component_instance.ComponentInstance的用法示例。


在下文中一共展示了ComponentInstance.add_symbol_attribute方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: parse_component_instance

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def parse_component_instance(self, f):
        """ Parse a component instance from a $Comp block """
        # pylint: disable=R0914

        # name & reference
        prefix, name, reference = f.readline().split()
        assert prefix == 'L'

        ref_count_idx = 1
        while reference in self.instance_names:
            ref_count_idx += 1
            reference = reference + '-' + str(ref_count_idx)

        self.instance_names.append(reference)

        comp = None
        if self.library is not None:
            library_part = self.library.lookup_part(name)
            if library_part is not None:
                name = library_part.name

        # unit & convert
        prefix, unit, convert, ar_path = f.readline().split(None, 3)
        unit, convert = int(unit), int(convert)
        assert prefix == 'U'

        # position
        prefix, compx, compy = f.readline().split()
        assert prefix == 'P'
        compx, compy = int(compx), int(compy)

        line = f.readline()
        rotation = 0
        flip = False
        annotations = []

        while line.strip() not in ("$EndComp", ''):
            if line.startswith('F '):
                annotations.append(self.parse_field(compx, compy, line))
            elif line.startswith('\t'):
                parts = line.strip().split()
                if len(parts) == 4:
                    rotation, flip = MATRIX2ROTATIONFLIP.get(
                        tuple(int(i) for i in parts), (0, False))
            elif line.startswith('AR Path'):
                if '?' in reference:
                    path_line = line.strip().split()
                    ar_path_check = path_line[1].strip('"')[7:] #removes Path="/
                    if ar_path.strip() == ar_path_check:
                        reference = path_line[2].strip('"')[5:] #removes Ref="

            line = f.readline()

        inst = ComponentInstance(reference, library_part, name.upper(), convert - 1)
        symbattr = SymbolAttribute(compx, -compy, rotation, flip)
        for ann in annotations:
            symbattr.add_annotation(ann)
        inst.add_symbol_attribute(symbattr)

        return inst, comp
开发者ID:BPheiffer,项目名称:schematic-file-converter,代码行数:62,代码来源:kicad.py

示例2: parse_inst

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def parse_inst(self, args):
        """ Returns a parsed component instance. """
        inst, libname, libnum, x, y, rot, _scale, _unknown = args.split()
        # scale is a floating point scaling constant. Also, evil.
        thisinst = ComponentInstance(inst, self.lookup(libname, libnum), 0)
        flip = False
        if int(rot) > 3:
            # part is flipped around y-axis. When applying transforms, flip it
            # first, then rotate it.
            rot = str(int(rot) - 4)
            flip = True

        thisinst.add_symbol_attribute(SymbolAttribute(int(x), int(y),
                                                      (2 - float(rot) / 2) % 2,
                                                      flip))
        subdata = self.sub_nodes('|R A C'.split())
        for annot in subdata['annot']:
            thisinst.symbol_attributes[0].add_annotation(annot)
            if '=' in annot.value:
                thisinst.add_attribute(*(annot.value.split('=', 1)))

        # Turns out C can reference a net before it's been created via
        # the N command. Really don't like passing stuff inband like this. Ugh.
        thisinst.conns = subdata['conn']
        return ('inst', thisinst)
开发者ID:ncsaba,项目名称:schematic-file-converter,代码行数:27,代码来源:viewdraw.py

示例3: parse_inst

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def parse_inst(self, args):
        """ Returns a parsed component instance. """
        inst, libname, libnum, x, y, rot, _scale, _b = args.split()
        # scale is a floating point scaling constant. Also, evil.
        thisinst = ComponentInstance(inst, self.lookup(libname, libnum), 0)
        if int(rot) > 3:
            # part is flipped around y-axis. When applying transforms, flip it
            # first, then rotate it.
            rot = str(int(rot) - 4)
            # flip = True

        thisinst.add_symbol_attribute(SymbolAttribute(int(x), int(y),
                                                      float(rot) / 2))
        subdata = defaultdict(list)
        for phrase in self.stream:
            cmd, _sep, args = phrase.partition(' ')
            if cmd not in ('|R', 'A', 'C'):
                self.stream.push(phrase)
                break
            k, v = self.parsenode(cmd)(args)
            subdata[k].append(v)
        for annot in subdata['annot']:
            thisinst.symbol_attributes[0].add_annotation(annot)
            if '=' in annot.value:
                thisinst.add_attribute(*(annot.value.split('=', 1)))

        # Turns out C can reference a net before it's been created via
        # the N command. Really don't like passing stuff inband like this. Ugh.
        thisinst.conns = subdata['conn']
        return ('inst', thisinst)
开发者ID:ch3ka,项目名称:schematic-file-converter,代码行数:32,代码来源:viewdraw.py

示例4: test_bounds_all_elts

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def test_bounds_all_elts(self):
        '''bounds() with all the elements competing'''
        net = Net('foo')
        mkbounds(net, 3, 3, -1, -2)
        self.des.add_net(net)

        annot = Annotation('foo', 3, 3, 0, True)
        mkbounds(annot, 3, 3, 3, 5)
        self.des.design_attributes.add_annotation(annot)

        libcomp = Component('bar')
        libcomp.add_symbol(Symbol())
        libcomp.symbols[0].add_body(Body())
        mkbounds(libcomp.symbols[0].bodies[0], 0, 0, 3, 3)
        self.des.add_component('foo', libcomp)

        compinst = ComponentInstance('bar', 'foo', 0)
        compinst.add_symbol_attribute(SymbolAttribute(3, 0, 0, False))
        self.des.add_component_instance(compinst)

        top_left, btm_right = self.des.bounds()
        self.assertEqual(top_left.x, -1)
        self.assertEqual(top_left.y, -2)
        self.assertEqual(btm_right.x, 6)
        self.assertEqual(btm_right.y, 5)
开发者ID:ncsaba,项目名称:schematic-file-converter,代码行数:27,代码来源:design_t.py

示例5: test_write_instance

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
 def test_write_instance(self):
     """ Convert component instance """
     inst = ComponentInstance('id', 'libid', 1)
     inst.add_symbol_attribute(SymbolAttribute(3, 4, 0.5, False))
     writer = Specctra()
     obj = writer._convert_component_instance(inst)
     self.assertEqual(
             to_string(writer, obj),
             '(component libid-1 (place id 31.250000 41.666667 front 270) )')
开发者ID:ncsaba,项目名称:schematic-file-converter,代码行数:11,代码来源:specctra_t.py

示例6: parse_component_instance

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def parse_component_instance(self, f):
        """ Parse a component instance from a $Comp block """
        # pylint: disable=R0914

        # name & reference
        prefix, name, reference = f.readline().split()
        assert prefix == 'L'

        # unit & convert
        prefix, unit, convert, _ = f.readline().split(None, 3)
        unit, convert = int(unit), int(convert)
        assert prefix == 'U'

        # position
        prefix, compx, compy = f.readline().split()
        assert prefix == 'P'
        compx, compy = int(compx), int(compy)

        line = f.readline()
        rotation = 0
        annotations = []

        while line.strip() not in ("$EndComp", ''):
            if line.startswith('F '):
                parts = line.split('"', 2)
                value = parts[1].decode('utf-8', 'replace')
                parts = parts[2].strip().split()
                annotations.append(
                    Annotation(value,
                               make_length(int(parts[1]) - compx),
                               -make_length(int(parts[2]) - compy),
                               0 if parts[0] == 'H' else 1, 'true'))
            elif line.startswith('\t'):
                parts = line.strip().split()
                if len(parts) == 4:
                    rotation = MATRIX2ROTATION.get(
                        tuple(int(i) for i in parts), 0)
            line = f.readline()

        inst = ComponentInstance(reference, name, convert - 1)
        symbattr = SymbolAttribute(make_length(compx), -make_length(compy),
                                   rotation)
        for ann in annotations:
            symbattr.add_annotation(ann)
        inst.add_symbol_attribute(symbattr)

        return inst
开发者ID:ch3ka,项目名称:schematic-file-converter,代码行数:49,代码来源:kicad.py

示例7: test_bounds_parts

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def test_bounds_parts(self):
        '''test bounds() with just components in the design'''
        libcomp = Component('bar')
        libcomp.add_symbol(Symbol())
        libcomp.symbols[0].add_body(Body())
        mkbounds(libcomp.symbols[0].bodies[0], 0, 0, 10, 10)
        self.des.add_component('foo', libcomp)
        for (x, y) in ((1, 3), (3, 2), (5, 3), (3, 7)):
            compinst = ComponentInstance(str((x, y)), 'foo', 0)
            compinst.add_symbol_attribute(SymbolAttribute(x, y, 0, False))
            self.des.add_component_instance(compinst)

        top_left, btm_right = self.des.bounds()
        self.assertEqual(top_left.x, 1)
        self.assertEqual(top_left.y, 2)
        self.assertEqual(btm_right.x, 15)
        self.assertEqual(btm_right.y, 17)
开发者ID:ncsaba,项目名称:schematic-file-converter,代码行数:19,代码来源:design_t.py

示例8: parse_component_instance

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def parse_component_instance(self, f):
        """ Parse a component instance from a $Comp block """
        # pylint: disable=R0914

        # name & reference
        prefix, name, reference = f.readline().split()
        assert prefix == 'L'

        if self.library is not None:
            library_part = self.library.lookup_part(name)
            if library_part is not None:
                name = library_part.name

        # unit & convert
        prefix, unit, convert, _ = f.readline().split(None, 3)
        unit, convert = int(unit), int(convert)
        assert prefix == 'U'

        # position
        prefix, compx, compy = f.readline().split()
        assert prefix == 'P'
        compx, compy = int(compx), int(compy)

        line = f.readline()
        rotation = 0
        annotations = []

        while line.strip() not in ("$EndComp", ''):
            if line.startswith('F '):
                annotations.append(self.parse_field(compx, compy, line))
            elif line.startswith('\t'):
                parts = line.strip().split()
                if len(parts) == 4:
                    rotation = MATRIX2ROTATION.get(
                        tuple(int(i) for i in parts), 0)
            line = f.readline()

        inst = ComponentInstance(reference, name.upper(), convert - 1)
        symbattr = SymbolAttribute(make_length(compx), -make_length(compy),
                                   rotation, False)
        for ann in annotations:
            symbattr.add_annotation(ann)
        inst.add_symbol_attribute(symbattr)

        return inst
开发者ID:patrickyeon,项目名称:schematic-file-converter,代码行数:47,代码来源:kicad.py

示例9: _convert_components

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def _convert_components(self, struct):
        for component in struct.placement.component:
            library_id = component.image_id
            for place in component.place:
                # Outside PCB boundary
                if not place.vertex:
                    continue

                mirror = {90:270, 270:90}
                if place.side == 'back':
                    rotation = place.rotation
                else:
                    rotation = mirror.get(int(place.rotation), place.rotation)
                inst = ComponentInstance(place.component_id, library_id, 0)
                v = self.to_pixels(place.vertex)
                symbattr = SymbolAttribute(v[0], v[1], to_piradians(rotation), False)
                inst.add_symbol_attribute(symbattr) 
                self.design.add_component_instance(inst)
开发者ID:ncsaba,项目名称:schematic-file-converter,代码行数:20,代码来源:specctra.py

示例10: make_component_instance

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def make_component_instance(self, parts, instance):
        """ Construct an openjson component instance for an eagle instance. """

        part = parts[instance.part]

        library_id = part.library + ':' + part.deviceset

        # TODO pick correct symbol index
        inst = ComponentInstance(instance.part, library_id, 0)

        # TODO handle mirror
        # TODO handle smashed?
        attr = SymbolAttribute(self.make_length(instance.x),
                               self.make_length(instance.y),
                               self.make_angle(instance.rot or '0'))

        inst.add_symbol_attribute(attr)

        return inst
开发者ID:aivarsk,项目名称:schematic-file-converter,代码行数:21,代码来源:__init__.py

示例11: parse_component_instances

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def parse_component_instances(self, component_instances):
        """ Extract the component instances. """

        if component_instances is None:
            return None

        for instance in component_instances:
            # Get instance_id, library_id and symbol_index
            instance_id = instance.get("instance_id")
            library_id = instance.get("library_id")
            symbol_index = int(instance.get("symbol_index"))
            footprint_index = int(instance.get("footprint_index"))
            # Make the ComponentInstance()
            inst = ComponentInstance(
                instance_id, self.design.components.components[library_id], library_id, symbol_index, footprint_index
            )

            # Get the SymbolAttributes
            for symbol_attribute in instance.get("symbol_attributes", []):
                attr = self.parse_symbol_attribute(symbol_attribute)
                inst.add_symbol_attribute(attr)

            # TODO(shamer) footprint_pos, fleb and genobj positions are relative to the footprint_pos
            for footprint_attribute in instance.get("footprint_attributes", []):
                attr = self.parse_footprint_attribute(footprint_attribute)
                inst.add_footprint_attribute(attr)
            for gen_obj_attribute in instance.get("gen_obj_attributes", []):
                attr = self.parse_gen_obj_attribute(gen_obj_attribute)
                inst.add_gen_obj_attribute(attr)

            footprint_json = instance.get("footprint_pos")
            if footprint_json:
                footprint_pos = self.parse_footprint_pos(footprint_json)
            else:
                footprint_pos = None
            inst.set_footprint_pos(footprint_pos)

            # Get the Attributes
            for key, value in instance.get("attributes").items():
                inst.add_attribute(key, value)

            # Add the ComponentInstance
            self.design.add_component_instance(inst)
开发者ID:aasimmerchant05,项目名称:schematic-file-converter,代码行数:45,代码来源:openjson.py

示例12: test_write_instance

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def test_write_instance(self):
        """
        The write_instance method serializes a component instance
        correctly.
        """

        inst = ComponentInstance('id', 'libid', 1)
        inst.add_symbol_attribute(SymbolAttribute(3, 4, 0.5))
        writer = KiCAD()
        buf = StringIO()
        writer.write_instance(buf, inst)
        self.assertEqual(buf.getvalue(), '''\
$Comp
L libid id
U 1 1 00000000
P 33 -44
\t1    33 -44
\t0    1    1    0
$EndComp
''')
开发者ID:foobarmus,项目名称:schematic-file-converter,代码行数:22,代码来源:kicad_t.py

示例13: parse_component_instances

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def parse_component_instances(self, component_instances):
        """ Extract the component instances. """
        for instance in component_instances:
            # Get instance_id, library_id and symbol_index
            instance_id = instance.get('instance_id')
            library_id = instance.get('library_id')
            symbol_index = int(instance.get('symbol_index'))
            # Make the ComponentInstance()
            inst = ComponentInstance(instance_id, library_id, symbol_index)

            # Get the SymbolAttributes
            for symbol_attribute in instance.get('symbol_attributes'):
                attr = self.parse_symbol_attribute(symbol_attribute)
                inst.add_symbol_attribute(attr)

            # Get the Attributes
            for key, value in instance.get('attributes').items():
                inst.add_attribute(key, value)

            # Add the ComponentInstance
            self.design.add_component_instance(inst)
开发者ID:aivarsk,项目名称:schematic-file-converter,代码行数:23,代码来源:openjson.py

示例14: parse_inst

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def parse_inst(self, args):
        """ Returns a parsed component instance. """
        inst, libname, libnum, x, y, rot, scale, _unknown = args.split()
        # scale is a floating point scaling constant. Also, evil.
        if scale != '1':
            libkey = self.scaled_component(libname, libnum, scale)
        else:
            libkey = self.lookup(libname, libnum)
        thisinst = ComponentInstance(inst, libkey, 0)
        rot, flip = self.rot_and_flip(rot)
        thisinst.add_symbol_attribute(SymbolAttribute(int(x), int(y),
                                                      rot, flip))
        subdata = self.sub_nodes('|R A C'.split())
        for annot in subdata['annot']:
            thisinst.symbol_attributes[0].add_annotation(annot)
            if '=' in annot.value:
                thisinst.add_attribute(*(annot.value.split('=', 1)))

        # Turns out C can reference a net before it's been created via
        # the N command. Really don't like passing stuff inband like this. Ugh.
        thisinst.conns = subdata['conn']
        return ('inst', thisinst)
开发者ID:patrickyeon,项目名称:schematic-file-converter,代码行数:24,代码来源:viewdraw.py

示例15: parse_component_instance

# 需要导入模块: from upconvert.core.component_instance import ComponentInstance [as 别名]
# 或者: from upconvert.core.component_instance.ComponentInstance import add_symbol_attribute [as 别名]
    def parse_component_instance(self, inst):
        """ Parse a Fritzing non-wire instance into a ComponentInstance """

        view = inst.find('views/schematicView')

        if view is None:
            return

        if view.get('layer') == 'breadboardbreadboard':
            return

        cpt = self.ensure_component(inst)

        if cpt is None:
            return

        index = inst.get('modelIndex')
        idref = inst.get('moduleIdRef')
        title = inst.find('title').text
        geom = view.find('geometry')
        xform = geom.find('transform')

        x, y = float(geom.get('x', 0)), float(geom.get('y', 0))

        if xform is None:
            rotation = 0.0
        else:
            matrix = tuple(int(float(xform.get(key, 0)))
                           for key in ('m11', 'm12', 'm21', 'm22'))
            x, y = rotate_component(cpt, matrix, x, y)
            rotation = MATRIX2ROTATION.get(matrix, 0.0)

        compinst = ComponentInstance(title, cpt, idref, 0)

        compinst.add_symbol_attribute(
            SymbolAttribute(make_x(x), make_y(y), rotation, False))

        self.component_instances[index] = compinst
开发者ID:EasyPCB,项目名称:schematic-file-converter,代码行数:40,代码来源:fritzing.py


注:本文中的upconvert.core.component_instance.ComponentInstance.add_symbol_attribute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。