23 from gettext
import gettext
as _
32 RELEASE_VERSION = 20121203
36 FILEFORMAT_VERSION = 2
44 return 'v %s %u\n' % (RELEASE_VERSION, FILEFORMAT_VERSION)
57 for ob
in rev.toplevel_objects():
63 return '%d %d %d %d %d' % (data.width,
72 return '%d %d %d %d %d %d' % (data.type,
86 bus_data = bus_ob.data()
92 or data.symbol.basename !=
'busripper-1.sym':
98 elif data.angle == 90:
101 elif data.angle == 180:
104 elif data.angle == 270:
111 if bus_data.width == 0
and bus_data.x == x \
112 and y >= min(bus_data.y, bus_data.y + bus_data.height) \
113 and y <= max(bus_data.y, bus_data.y + bus_data.height):
114 if data.angle == 0
or data.angle == 90:
120 if bus_data.height == 0
and bus_data.y == y \
121 and x >= min(bus_data.x, bus_data.x + bus_data.width) \
122 and x <= max(bus_data.x, bus_data.x + bus_data.width):
123 if data.angle == 0
or data.angle == 270:
128 if found_neg
and found_pos:
154 f.write(
'%c %d %d %d %d %d %s\n' % (
155 xorn.geda.plainformat.OBJ_LINE,
158 offset_x + data.x + data.width,
159 offset_y + data.y + data.height,
165 x0, y0 = data.x + data.width, data.y + data.height
166 x1, y1 = data.x, data.y
168 x0, y0 = data.x, data.y
169 x1, y1 = data.x + data.width, data.y + data.height
171 f.write(
'%c %d %d %d %d %d %d %d\n' % (
172 xorn.geda.plainformat.OBJ_PIN,
173 offset_x + x0, offset_y + y0,
174 offset_x + x1, offset_y + y1,
179 f.write(
'%c %d %d %d %d %d %d\n' % (
180 xorn.geda.plainformat.OBJ_BUS,
183 offset_x + data.x + data.width,
184 offset_y + data.y + data.height,
188 f.write(
'%c %d %d %d %d %d\n' % (
189 xorn.geda.plainformat.OBJ_NET,
192 offset_x + data.x + data.width,
193 offset_y + data.y + data.height,
196 f.write(
'%c %d %d %d %d %d %s %s\n' % (
197 xorn.geda.plainformat.OBJ_BOX,
206 f.write(
'%c %d %d %d %d %s %s\n' % (
207 xorn.geda.plainformat.OBJ_CIRCLE,
215 if data.symbol.embedded:
216 basename =
'EMBEDDED' + data.symbol.basename
218 basename = data.symbol.basename
220 f.write(
'%c %d %d %d %d %d %s\n' % (
221 xorn.geda.plainformat.OBJ_COMPLEX,
229 if data.symbol.embedded:
232 data.symbol.prim_objs).toplevel_objects():
233 write_object(f, ob_, offset_x + data.x, offset_y + data.y)
237 f.write(
'%c %d %d %d %d %d %d %d %d %d\n' % (
238 xorn.geda.plainformat.OBJ_TEXT,
244 data.show_name_value,
247 data.text.count(
'\n') + 1))
248 f.write(data.text +
'\n')
250 f.write(
'%c %d %s %s %d\n' % (
251 xorn.geda.plainformat.OBJ_PATH,
255 data.pathdata.count(
'\n') + 1))
256 f.write(data.pathdata +
'\n')
258 f.write(
'%c %d %d %d %d %d %d %s\n' % (
259 xorn.geda.plainformat.OBJ_ARC,
268 f.write(
'%c %d %d %d %d %d %d %d\n%s\n' % (
269 xorn.geda.plainformat.OBJ_PICTURE,
276 data.pixmap.embedded,
277 data.pixmap.filename))
279 if data.pixmap.embedded:
283 _(
"Encountered an object with unknown type %s") % type(data)
286 attribs = ob.attached_objects()
289 for attrib
in attribs:
def file_format_header
Return the gEDA file header string.
Reading and writing base64-encoded data.
Schematic net segment, bus segment, or pin.
def write_object
Write an object to a file in libgeda format.
def encode
Write a binary string to a file in base64 representation.
def bus_ripper_direction
Return the libgeda ripper direction of a bus object.
Writing files in a safe way.
High-level revision proxy class.
def write_file
Write a symbol or schematic to a file in libgeda format.
def format_fill
Format a fill style to a string.
Schematic text or attribute.
High-level proxy classes for the storage backend.
def format_line
Format a line style to a string.