Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How to draw multipath with user input netnames in Skill ?

Status
Not open for further replies.

pranjal_ccna961

Newbie level 5
Joined
Jun 12, 2008
Messages
9
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,335
rodcreatepath

How to draw multipath with user input netnames in Skill ?

lecreatepath is one such option, can anyone please help me on this.
 

rodcreatepath multipath

hiSetBindKey("Layout" "F8" "line()")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;enterpath;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
procedure(line()
let((path_width path_space path_number path_point width cvId layer purpose list_draw_layer)
path_Form()
path_width=pathForm->path_widthID->value
path_space=pathForm->path_spaceID->value
path_number=pathForm->path_numberID->value
path_point=pathForm->path_pointID->value
width=(path_width+path_space)*path_number-path_space

cvId=getEditRep()
layer = car(leGetEntryLayer()) ; LSW layer
purpose = cadr(leGetEntryLayer()) ; LSW purpose
list_draw_layer=list(layer purpose) ; LSW LAYER

procedure( pathDone( w done pts )
if( done then
printf("Path entered was %L.\n" pts)
get_draw_path(pts path_width path_space path_number list_draw_layer width);
else
println("Path entry aborted.")
);if
);procedure
enterPath( ?prompts ;enterpath
list( "Enter the first point."
"Enter the next point." )
?doneProc "pathDone" ;enterpath
?wantPoints path_point ;enterpath
?pathWidth width
?pathStyle "Truncate" ;enterpath style
);enterpath
);let
);procedure_line
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;PATH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
procedure(get_draw_path(path_list path_width path_space path_number list_draw_layer width)
let((path_pitch len path_obj plogon_path list1 list2 move_d i)
path_pitch=path_width+path_space
move_d=path_space+path_width/2
len=length(path_list)
path_obj=leCreatePath( cvId list_draw_layer path_list width)
plogon_path=dbConvertPathToPolygon(path_obj)
list1=plogon_path~>points
list2=reverse(list1)
dbDeleteObject(plogon_path)
for(i 1 path_number
get_new_path_list(list1 list2 path_pitch len)
list1=reverse(list_new_get)
leCreatePath( cvId list_draw_layer list_new_get path_width )
);for
);let
);procedure
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;path(list);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
procedure(get_new_path_list(list11 list22 path_pitch_g len_g)
let((xnew ynew listxy11 listxy22 x1 y1 x2 y2)
list_new=list()
for(i 1 len_g
listxy11=nth(i-1 list11)
listxy22=nth(i-1 list22)
x1=car(listxy11)
y1=cadr(listxy11)
x2=car(listxy22)
y2=cadr(listxy22)
if( x2==x1 then
if(y2 > y1 then
xnew=x1
ynew=y1+path_pitch
else
xnew=x1
ynew=y1-path_pitch
);if
else
if(x2 > x1 then
m=(y2-y1)/(x2-x1)
xnew=x1+path_pitch
ynew=y1+m*(xnew-x1)
else
m=(y2-y1)/(x2-x1)
xnew=x1-path_pitch
ynew=y1+m*(xnew-x1)
);if

);if
list_new=xcons(list_new list(xnew ynew))
);for
list_new_get=list_new
println(list_new_get)
);let
);procedure
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(procedure path_Form()
(prog (slot_widthID slot_heighID slot_width_pitchID slot_heigh_pitchID slotFormID)

path_widthID=hiCreateFloatField(
?name 'path_widthID
?prompt "path width :"
?value 1.0
?defValue 1.0
?range (range 0 100)
;?editable nil
)

path_spaceID=hiCreateFloatField(
?name 'path_spaceID
?prompt "path space :"
?value 1.0
?defValue 1.0
?range (range 0 100)
;?editable nil
)
path_numberID=hiCreateIntField(
?name 'path_numberID
?prompt "path number :"
?value 5
?defValue 5
?range (range 1 100)
;?editable nil
)
path_pointID=hiCreateIntField(
?name 'path_pointID
?prompt "path point number :"
?value 5
?defValue 5
?range (range 1 100)
;?editable nil
)

pathFormID=hiCreateForm(
'pathForm
"CREAT MULTI PATH"
(list "()")
list(
(list path_widthID 0:20 200:30 100)
(list path_spaceID 250:20 200:30 100)
(list path_numberID 0:50 200:30 100)
(list path_pointID 250:50 200:30 100)
)
nil nil
)

(hiDisplayForm pathForm)

);prog
);proc_form
 

Re: How to draw multipath with user input netnames in Skill

pranjal_ccna961 said:
I want to assign net name to the lines i draw
rodCreatePath , s. $CDS_INST_DIR/doc/roduser/chap3.html#rodCreatePath
 
Re: How to draw multipath with user input netnames in Skill

rodcreatepath fn will do it...

need to dig deep into it :)

Thanks Buddy !!

here is the link : **broken link removed**
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top