Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • jllemur813/roco_electrical
1 result
Show changes
Showing
with 590 additions and 428 deletions
File added
(gui_defaults
(windows
(board_frame
visible
(bounds
351 29 1150 916
)
)
(color_manager
not_visible
(bounds
0 600 1110 134
)
)
(layer_visibility
not_visible
(bounds
0 450 359 162
)
)
(object_visibility
not_visible
(bounds
0 550 395 396
)
)
(display_miscellanious
not_visible
(bounds
0 350 241 333
)
)
(snapshots
not_visible
(bounds
0 250 230 255
)
)
(select_parameter
not_visible
(bounds
0 0 246 467
)
)
(route_parameter
not_visible
(bounds
0 100 261 542
)
)
(manual_rules
not_visible
(bounds
0 27 284 196
)
)
(route_details
not_visible
(bounds
0 27 263 240
)
)
(move_parameter
not_visible
(bounds
0 50 304 139
)
)
(clearance_matrix
not_visible
(bounds
0 150 470 257
)
)
(via_rules
not_visible
(bounds
50 150 335 450
)
)
(edit_vias
not_visible
(bounds
100 150 413 87
)
)
(edit_net_rules
not_visible
(bounds
100 200 913 103
)
)
(assign_net_rules
not_visible
(bounds
100 250 213 84
)
)
(padstack_info
not_visible
(bounds
100 30 0 0
)
)
(package_info
not_visible
(bounds
200 30 0 0
)
)
(component_info
not_visible
(bounds
300 30 0 0
)
)
(net_info
not_visible
(bounds
350 30 0 0
)
)
(incompletes_info
not_visible
(bounds
400 30 0 0
)
)
(violations_info
not_visible
(bounds
500 30 0 0
)
)
)
(colors
(background
204 204 204
)
(hilight 1.0
0 0 204
)
(incompletes 1.0
0 153 153
)
(outline
0 0 0
)
(component_front
0 0 255
)
(component_back
255 0 0
)
(violations
255 0 255
)
(length_matching 1.0
0 255 0
)
(traces 1.0
255 0 0
0 0 255
)
(fixed_traces 1.0
255 0 0
0 0 255
)
(vias 1.0
200 200 0
200 200 0
)
(fixed_vias 1.0
200 200 0
200 200 0
)
(pins 1.0
150 50 0
160 80 0
)
(conduction 1.0
0 150 0
100 100 0
)
(keepout 1.0
0 110 110
0 100 160
)
(via_keepout 1.0
100 100 100
100 100 100
)
)
(parameter
(selection_layers
all_visible
)
(selectable_items
TRACES VIAS PINS FIXED UNFIXED
)
(via_snap_to_smd_center
on
)
(route_mode
dynamic
)
(shove_enabled
on
)
(drag_components_enabled
on
)
(hilight_routing_obstacle
off
)
(pull_tight_region
2147483647
)
(pull_tight_accuracy
500
)
(clearance_compensation
off
)
(ignore_conduction_areas
on
)
(automatic_layer_dimming
0.7
)
(deselected_snapshot_attributes
)
)
)
\ No newline at end of file
(gui_defaults
(windows
(board_frame
visible
(bounds
351 29 1150 916
)
)
(color_manager
not_visible
(bounds
0 600 1110 134
)
)
(layer_visibility
not_visible
(bounds
0 450 369 162
)
)
(object_visibility
not_visible
(bounds
0 550 405 396
)
)
(display_miscellanious
not_visible
(bounds
0 350 241 333
)
)
(snapshots
not_visible
(bounds
0 250 230 255
)
)
(select_parameter
not_visible
(bounds
0 0 246 467
)
)
(route_parameter
not_visible
(bounds
0 100 261 542
)
)
(manual_rules
not_visible
(bounds
0 27 284 196
)
)
(route_details
not_visible
(bounds
0 27 263 240
)
)
(move_parameter
not_visible
(bounds
0 50 304 139
)
)
(clearance_matrix
not_visible
(bounds
0 150 470 257
)
)
(via_rules
not_visible
(bounds
50 150 335 450
)
)
(edit_vias
not_visible
(bounds
100 150 413 103
)
)
(edit_net_rules
not_visible
(bounds
100 200 913 103
)
)
(assign_net_rules
not_visible
(bounds
100 250 213 84
)
)
(padstack_info
not_visible
(bounds
100 30 0 0
)
)
(package_info
not_visible
(bounds
200 30 0 0
)
)
(component_info
not_visible
(bounds
300 30 0 0
)
)
(net_info
not_visible
(bounds
350 30 0 0
)
)
(incompletes_info
not_visible
(bounds
400 30 0 0
)
)
(violations_info
not_visible
(bounds
500 30 0 0
)
)
)
(colors
(background
204 204 204
)
(hilight 1.0
230 255 255
)
(incompletes 1.0
255 255 255
)
(outline
0 0 0
)
(component_front
0 0 255
)
(component_back
255 0 0
)
(violations
255 0 255
)
(length_matching 1.0
0 255 0
)
(traces 1.0
255 0 0
0 0 255
)
(fixed_traces 1.0
255 0 0
0 0 255
)
(vias 1.0
200 200 0
200 200 0
)
(fixed_vias 1.0
200 200 0
200 200 0
)
(pins 1.0
150 50 0
160 80 0
)
(conduction 1.0
0 150 0
100 100 0
)
(keepout 1.0
0 110 110
0 100 160
)
(via_keepout 1.0
100 100 100
100 100 100
)
)
(parameter
(selection_layers
all_visible
)
(selectable_items
TRACES VIAS PINS FIXED UNFIXED
)
(via_snap_to_smd_center
on
)
(route_mode
dynamic
)
(shove_enabled
on
)
(drag_components_enabled
on
)
(hilight_routing_obstacle
off
)
(pull_tight_region
2147483647
)
(pull_tight_accuracy
500
)
(clearance_compensation
off
)
(ignore_conduction_areas
on
)
(automatic_layer_dimming
0.7
)
(deselected_snapshot_attributes
)
)
)
\ No newline at end of file
#!/usr/bin/env python3
import copy
import numpy as np
from math import sqrt
def find_wire(file_path,pin_loc=None):
if not file_path.endswith('.ses'):
file_path+='.ses'
ses=open(file_path,'r').read().splitlines()
pathsec_list=[]
for i in range(len(ses)):
if 'path' in ses[i]:
for j in range(i,len(ses)):
if ')' in ses[j]:
pathsec=[i,j]
pathsec_list.append(pathsec)
break
path_list=[]
for sec_bry in pathsec_list:
onepath=[]
for j in range(sec_bry[0]+1,sec_bry[1]):
pts_str=ses[j].split()
ptstart=int(pts_str[0])
ptend=int(pts_str[1])
pts=[ptstart,ptend]
onepath.append(pts)
path_list.append(onepath)
pin_loc_=[]
for module in pin_loc:
for pin in module:
pin=np.array(pin)*10000
pin=pin.astype(int)
pin=pin.tolist()
pin_loc_.append(pin)
merged_path_list=[]
while len(path_list)!=0:
merged_path=path_list[0]
path_list.remove(merged_path)
flag=True
s_merge_flag=True
e_merge_flag=True
while flag:
s=merged_path[0]
e=merged_path[-1]
# m1_len=len(merged_path)
flag=False
if s in pin_loc_:
s_merge_flag=False
if e in pin_loc_:
e_merge_flag=False
to_merge_temp=[]
for restpath in path_list:
s_=restpath[0]
e_=restpath[-1]
# m2_len=len(restpath)
# if m1_len<3 or m2_len<3:
if (s==s_ or s==e_ or e==s_ or e==e_) and (s_merge_flag or e_merge_flag):
to_merge_temp.append(restpath)
if len(to_merge_temp)!=0:
dis=[]
for temp_path in to_merge_temp:
leng=len_of_path(temp_path)
dis.append(leng)
to_merge=to_merge_temp[np.argmin(dis)]
to_merge_copy=copy.deepcopy(to_merge)
s_=to_merge[0]
e_=to_merge[-1]
if s==s_ and s_merge_flag:
merged_path.remove(s)
merged_path=list(reversed(merged_path))+(to_merge_copy)
path_list.remove(to_merge)
flag=True
if s==e_ and s_merge_flag:
merged_path.remove(s)
merged_path=to_merge_copy+(merged_path)
path_list.remove(to_merge)
flag=True
if e==s_ and e_merge_flag:
merged_path.remove(e)
merged_path=(merged_path)+(to_merge_copy)
path_list.remove(to_merge)
flag=True
if e==e_ and e_merge_flag:
merged_path.remove(e)
merged_path=to_merge_copy+(list(reversed(merged_path)))
path_list.remove(to_merge)
flag=True
merged_path_list.append(merged_path)
for path in merged_path_list:
if len(path)>=3:
path_cp=copy.deepcopy(path)
for i in range(len(path_cp)-2):
pt1=path_cp[i]
pt2=path_cp[i+1]
pt3=path_cp[i+2]
x1,x2,x3=pt1[0],pt2[0],pt3[0]
y1,y2,y3=pt1[1],pt2[1],pt3[1]
if x1==x2 and x2==x3:
path.remove(pt2)
elif y1==y2 and y2==y3:
path.remove(pt2)
return merged_path_list
def len_of_path(path):
leng=0
for i in range(len(path)-1):
pt1=path[i]
pt2=path[i+1]
x1,y1=pt1[0],pt1[1]
x2,y2=pt2[0],pt2[1]
dis= sqrt((x1-x2)**2+(y1-y2)**2)
leng+=dis
return leng
This diff is collapsed.
journal_media/auto_read_and_cut.png

28.4 KiB

journal_media/auto_router.gif

524 KiB

journal_media/auto_router_from_dsn.gif

38.1 KiB

journal_media/autorouter_w_clearance.png

24.6 KiB

journal_media/branch_fix.png

30.6 KiB

journal_media/branch_issue.png

29.7 KiB

journal_media/circuit_demo.png

95.4 KiB

journal_media/circuit_inautorouter.png

25.5 KiB

journal_media/compare_dwg_autorouter.png

174 KiB

journal_media/connected_pin_issue.png

13.7 KiB

journal_media/contriA1.png

112 KiB

journal_media/contriB1.png

113 KiB

journal_media/contriC1.png

114 KiB

journal_media/contriD1.png

124 KiB

journal_media/cross_bug_report.png

143 KiB