예제 #1
0
    def new(self, name: str, dxfattribs: dict = None) -> Paperspace:
        """Returns a new :class:`~ezdxf.layouts.Paperspace` layout.

        Args:
            name: layout name as shown in tabs in :term:`CAD` applications
            dxfattribs: additional DXF attributes for the
                :class:`~ezdxf.entities.layout.DXFLayout` entity

        Raises:
            DXFValueError: Invalid characters in layout name.
            DXFValueError: Layout `name` already exist.

        """
        assert isinstance(name, str), type(str)
        if not is_valid_table_name(name):
            raise DXFValueError("Layout name contains invalid characters.")

        if name in self:
            raise DXFValueError(f'Layout "{name}" already exist.')

        dxfattribs = dict(dxfattribs or {})  # copy attribs
        dxfattribs["owner"] = self._dxf_layouts.dxf.handle
        dxfattribs.setdefault("taborder", len(self._layouts) + 1)
        block_name = self.unique_paperspace_name()
        layout = Paperspace.new(name,
                                block_name,
                                self.doc,
                                dxfattribs=dxfattribs)
        # Default extents are ok!
        # Reset limits to (0, 0) and (paper width, paper height)
        layout.reset_limits()
        self._add_layout(name, layout)
        return layout  # type: ignore
예제 #2
0
파일: layouts.py 프로젝트: billhu0228/ezdxf
    def new(self, name: str, dxfattribs: dict = None) -> Paperspace:
        """ Returns a new :class:`~ezdxf.layouts.Paperspace` layout.

        Args:
            name: layout name as shown in tabs in :term:`CAD` applications
            dxfattribs: additional DXF attributes for the
                :class:`~ezdxf.entities.layout.DXFLayout` entity

        Raises:
            DXFValueError: Invalid characters in layout name.
            DXFValueError: Layout `name` already exist.

        """
        assert isinstance(name, str), type(str)
        if not is_valid_table_name(name):
            raise DXFValueError('Layout name contains invalid characters.')

        if name in self._layouts:
            raise DXFValueError(f'Layout "{name}" already exists')

        dxfattribs = dict(dxfattribs or {})  # copy attribs
        dxfattribs['owner'] = self._dxf_layouts.dxf.handle
        dxfattribs.setdefault('taborder', len(self._layouts) + 1)
        block_name = self.unique_paperspace_name()
        layout = Paperspace.new(name,
                                block_name,
                                self.doc,
                                dxfattribs=dxfattribs)

        self._dxf_layouts[name] = layout.dxf_layout
        self._layouts[name] = layout

        return layout
예제 #3
0
 def linetype(self, name: str):
     if validator.is_valid_table_name(name):
         self._linetype = name
     else:
         raise const.DXFValueError(f"invalid linetype name '{name}'")