def run(fpfile, dxffile): # read the input floorplan fp = fp_io.Floorplan(fpfile) # prepare the output dxf file drawing = dxf.drawing(dxffile) # iterate over the rooms of the floor plan for room_id in range(fp.num_rooms): # make a layer for this room room_layer_name = 'room_' + str(room_id+1) room_layer = dxf.layer(room_layer_name) room_layer['color'] = 1+room_id # valid colors: [1,255] drawing.layers.add(room_layer) # generate the objects for this room obj_arr = room_to_polylines(fp, room_id) # draw each object in the room for pi in range(len(obj_arr)): # add each object to the drawing obj_arr[pi]['layer'] = room_layer_name obj_arr[pi]['color'] = 256 # color by layer obj_arr[pi]['paper_space'] = 0 # put in model space drawing.add(obj_arr[pi]) # save the drawing to file drawing.save()
nw_grid_spacing = 150 #size of the nanowire alignment markets nw_am_width = 10 text_height = 10 #size of orientation arrow orient_arrowhead_length = 150 orient_base_width = 40 orient_base_height = 250 #THESE ARE THE DETAILS OF THE FINE ALIGNMENT MARKERS #FROM HERE AND BELOW YOU SHOULD NOT NEED TO EDIT ANY PARAMETERS layer00 = 'GRIDLINES' drawing.layers.add(dxf.layer(name=layer00, color=grid_colour)) layer0 = 'ALIGNMENT_MARKERS' drawing.layers.add(dxf.layer(name=layer0, color=am_colour)) layer1 = 'ETCH_MARKERS' drawing.layers.add(dxf.layer(name=layer1, color= etch_colour)) layer2 = 'CONTACTS' drawing.layers.add(dxf.layer(name=layer2, color= contact_colour)) #AM GRID HEIGHT AND WIDTH - figures out the block width and height am_e_gridwidth = no_x_align*w_e +(no_x_align-1)*align_space_e am_e_gridheight = no_y_align*w_e +(no_y_align-1)*align_space_e print("am_e_gridheight=", am_e_gridheight) print("am_e_gridwidth=", am_e_gridwidth)
def add_layer(self, name, **kwargs): layer = DXFEngine.layer(name, **kwargs) self.layers.add(layer) return layer
def test_layer_by_factory(self): layer = DXFEngine.layer('Standard', linetype='CONTINUOUS') self.assertEqual(dxfstr(layer), self.expected)