Quantcast
Channel: Cadence PCB Skill Forum
Viewing all 2128 articles
Browse latest View live

Creating a output of every DRC used on a design in Allegro 16.6.

$
0
0

We have an eDfM who wants an excel spreadsheet filled out for every Design Rule and compliance with these rules. This creates hundreds of thousands of rules to check on a 12 layer design!

Is it possible to output each design rule and the value of the checks done (IE each pad tested and the minimum clearance value actually found) instead of just reporting that the DRC has zero errors?

If this is possible, how would it be done? Can a report be created in Cadence Allegro 16.6?


Automating STEP export

$
0
0

Hello,

I am looking to write a script that will create STEP file and .zip it.  

Is there a function related to this?

Thanks,

-Arash

TCL command to select value in object properties filter list.

$
0
0

Hi,

I am looking at writing a tcl script to change the edit object properties filter list in Capture. My objective is give all users a modified list of views that correspond to the bom properties of our various customers.
In the command window I can see that the capture command MenuCommand "14860" will open the object properties list from the selected design. The problem is that when I select a new filter from the drop down list the corresponding command is not shown in the command window. All subsequent commands to modify, add or delete filters are shown. I don't know if it is possible to do this invisibly.
At this point I am not sure whether it is better to continue modifying each users prefprops.txt file in their $userprofile directory or to write a start file in tcl. Any ideas would be welcome.

Thanks,
Jim O'Mahony

Allegro SKILL: Get selected item on canvas dbid

$
0
0

Hi

In Allegro I want to get selected item that user select before running script and then get its xy position. I don't want to use axlSelect cause it need user to select part again. I see in this thread, registering the command as "general" do the tricks but after try it in Allegro 17.2 HF045, its not working for me   Am I doing something wrong?

Tested Scenario

1. Load following code

defun( testPick (), printf("COUNT=%d",axlGetSelSetCount()))
axlCmdRegister("tpk" 'testPick ?cmdType "general")

2. Select symbol

3. run tpk in command mode

4. command print COUNT=0 :(((

Please Help!!!!! I'm working almost a week to create my script and now I stuck in this stupid step!

Thanks

Selected Screenshot

axlDBGetDesign()->pins returns nil?

$
0
0

Hi all,

I tried to collect all the pins in a design by using axlDBGetDesign()->pins, but it returns nil. 

Am I missing something?

Thanks,

Jerry

pausing skill program while in wordpad?

$
0
0

Hi All,

I am using axlRunBatchDBProgram to open wordpad. I want to pause the skill program until the user exit wordpad. Is there away to do this in skill?

Thanks,

Jerry

How to setup "the static shape parameter" via Skill?

$
0
0

Hi,

  Could anyone tell me how to setup the static shape parameter via skill in SPB16.6? axlGetParam() & axlSetParam()? I want to define the Suppress shapes less than :0 mil under Void controls and Pin default is 0 under Clearances. Thanks in advance.

axlUnsetVariableFile not update user env for allegro_html and allegro_html_qt

$
0
0

Hi all,

I tried to use axlUnsetVariableFile to turn off allegro_html_qt, but it does not update the user env file. I also tried the same for allegro_html and get the same results.

Other variable seem to work, just not the UI->Html variables. 

Has anyone seen this issue? or similar?

Thanks,

Jerry


Confirm dialog problem before closing a form with 'X'

$
0
0

Hi all,

I create a non-block form by axlFormCreate().

I expect that when user click 'x' (right-top side of a form), a window popup and ask if need to save something.

But with my form action function like below, the axlUIYesNo window does not appear and i have no idea why.

procedure( MyFormAct(r_form)

case(r_form->doneState

(3

println("user press X to exit...")
confirm = axlUIYesNo("Do you want to save before exit?" "Test")
println(confirm)

)
(0 println("Do something."))

)

)

command print:
"user press X to exit..."
nil

BTW, SPB version is 17.2-2016 S034

(backslash problem) function axlOSSlash is not working, any substitute?

$
0
0

Hi

I was trying to use function axlOSSlash to change backslashes to forward slashes.

     axlOSSlash("C:\Users\xxx\Desktop\_Doc_Study")

     -> SKILL return backslash error

OS: Win10 Enterprise

Tool: Allegro - APD ver 17.2

Does anyone have this problem before?

or any substitute method to change backslash to forward slash.

Thanks

-Murphy

axlTriggerSet at new design

$
0
0

Hi

I'm trying to implement a skill program that always has to setup some parameters when creating a new design.

I've used axlTriggerSet('open 'MyTrigger) for this.

procedure( MyTrigger(l_open)

axlMsgPut("IS THIS TRIGGERED BY NEW FILE")
)

This works fine when I open an existing file but not when creating a new design (board or symbol)

How can this be achieved?

I'm using 17.2s048 which is the latest release

Thanks in advance

Best regards

Ole

How to compare two text files BY skill

$
0
0

Hi everyone,

In current, i need to compare the consistency between Xsection of 2 design.

- Browse 2 brd file in UI skill 

- Extract the Xsection of design to list1.txt and list2.txt

- Compare the 2 lists

- No mismatch or NOT

Please advise some ideal to find this mismatch of stack up.

axlGetXSection()

mapcar()

Attaching shapes to components

$
0
0

I am in the middle of a program that checks to make sure all elements for high speed nets have proper voids.

I am wondering if there is a way through Skill to attach a void to a symbol? I am trying to attach the void for each AC Blocking Cap to the capacitor or if a void is missing then create the void and attach it to the cap. I am able to create the voids but I can't figure out how to attach the void to the cap in case the cap gets moved in the future.

I have tried to use axlDBCreateGroup("G1" "generic" group) where group contains the dbid's for the cap and the void but I get the following warning message:

          W- *WARNING* (axlDBCreateGroup): ERROR(SPMHDB-256): This element is not supported by this group type; not added.

I'd like for this to work with both static and dynamic shapes so that is why I am trying to associate the void with the cap. My next steps will be to add route keepouts to the ground layer & signal layer below the ground that is voided. I'd also like to associate the route keepout with the cap.

Any help / ideas will be greatly appreciated!

Thanks,

-K

free open skill

$
0
0

hi goodday, I'm new here, can anyone tell me if I can download free skill here? if yes, where can I find it?.

I'm trying to study how to creating skill.

thanks in advance.

How to write 17.2 script file (.scr) for color dialog to choose specific elements?

$
0
0

I wrote a script, intending to check off "Assembly_Top", but when I ran my script it checked off "Assembly" instead.

Attached is a snippet of my code, and the output.

Highlighted in green is my input, and the corresponding output (Assembly_Top should be checked, and it isn't).

Highlighted in red is the incorrect output (Assembly should not be checked)

I would like to understand why this error happened, and what my code should look like to choose "Assembly_Top" instead of just "Assembly".

Thank you!

  


alignment of a pin on a component to a pin on an adjacent component

$
0
0

Hi 

I am looking for the way to align a pin on a component to a pin on an adjacent component (horizontal or vertical), I can do it manually but it takes a lot of time.

if you know a skill out there that can do so, please let me know.

Thanks, 

Regards,

TiBo

How do we calculate length & width of an arc custom shape, or get the mid point of an arc.

$
0
0

Hi Dave, all

I have an issue on getting custom shapes size from a padstack. Some shapes which has arcs gives a rounded value if we use a bounding box. Example if the shape Bbox is(-0.362 -0.572)(0.362 0.572) , if we measure length & width in custom shape it sometimes can be 0.5715 instead of 0.572(rounded). I have raised to cadence & they have provided me with a code which i worked on. Attach is the code. When i asked cadence how do i get the length & width, the advice that  the min x can be subtracted from the max to obtain the width.The same can be done for the height using the y values. Below is the modified code that i manage to do.I still see issues when ever i see a half moon shape with arcs. If i can get the mid point of every arcs then i might solve this issue, unless you can suggest a better way. Please help & advice. Attach also snap shots of the results & shapes that i see which does not gives correct results.

Thanks

Jerry

From Cadence

defun( _TEST_getTopPadData (pin_dbid)
prog( ( pad_id xy cw acp wdth)
pad_id = axlDBGetPad( pid "PIN/TOP" "REGULAR")
axlMsgPut("Pad shape name: %s" pad_id->name)
axlMsgPut("Bounding Box: %L" pad_id->bBox)
fig_id= car(pad_id->figure)
pth_seg_list = axlPathGetPathSegs(fig_id)
seg_number = 1
foreach(seg pth_seg_list
xy = seg->_endPoint
if( seg->_arcClockwise then
cw = "Clockwise"
else
cw ="Counter_clockwise"
)
if( seg->_arcCenter then
acp=seg->_arcCenter
else
acp=list("Line")
)
wdth = seg->_width
if( acp=seg->_arcCenter then
axlMsgPut( "Seg No: %d Arc EndPoint: %L Arc Dir: %s Arc Center: %L Width:%f"
seg_number
xy
cw
acp
wdth
)
else
axlMsgPut( "Seg No: %d Line EndPoint: %L Width: %f" seg_number xy wdth)
)
seg_number++
)

return(nil)
))

Modified

defun( _TEST ()

axlVisibleDesign(nil)
axlVisibleLayer("PIN/TOP" t)
axlSetFindFilter(?enabled list("noall" "pins" "text") ?onButtons list("noall" "pins" "text"))
axlSetFindFilter(?enabled '(noall pins text) ?onButtons '(pins text))
np=axlAddSelectAll()
pin_dbid=car(axlGetSelSet(np))

list_x=nil
list_y=nil
list_1=nil

prog( ( pad_id xy cw acp wdth acp2 rad )
pad_id = axlDBGetPad( pin_dbid "PIN/TOP" "REGULAR")
axlMsgPut("Pad shape name: %s" pad_id->name)
axlMsgPut("Bounding Box: %L" pad_id->bBox)
fig_id= car(pad_id->figure)
pth_seg_list = axlPathGetPathSegs(fig_id)
seg_number = 0
foreach(seg pth_seg_list
xy = seg->_endPoint
if( seg->_arcClockwise then
cw = "Clockwise"
else
cw ="Counter_clockwise"
)
if( seg->_arcCenter then
acp=seg->_arcCenter
acp2=seg->startEnd
rad=seg->radius
else
acp=list("Line")
)
wdth = seg->_width
mid=axlMidPointArc(acp2 acp rad width t)
if( acp=seg->_arcCenter then
axlMsgPut( "Seg No: %d Arc EndPoint: %L Arc Dir: %s Arc Center: %L Width:%f"
seg_number
xy
cw
acp
wdth
)


else
axlMsgPut( "Seg No: %d Line EndPoint: %L Width: %f" seg_number xy wdth)
)
seg_number++
p_o=list(xy)
xpo=caar(p_o)
ypo=cadar(p_o)
list_x=cons(xpo list_x)
list_y=cons(ypo list_y)



;axlMsgPut("list_sx: %L" listx)
;axlMsgPut("list_sy: %L" listy)
;axlMsgPut("list_minx: %L" xmin)
;axlMsgPut("list_maxx: %L" xmax)



)

;listpts=reverse(list_x)
listx=sort(list_x 'lessp)
listy=sort(list_y 'lessp)

lx=length(listx)
ly=length(listy)

xmi=nthelem(1 listx)
xmx=nthelem(lx listx)

ymi=nthelem(1 listy)
ymx=nthelem(ly listy)


x_wid=abs(xmx-xmi)

y_hgt=abs(ymx-ymi)


axlMsgPut("list_x: %L" listx)
axlMsgPut("list_y: %L" listy)

axlMsgPut("x: %.3f" x_wid)
axlMsgPut("y: %.3f" y_hgt)



return(nil)
)
)

community.cadence.com/.../custom_5F00_shape_5F00_error.docx

axlShell("replay SCRIPT.scr") command in SKILL code not working-- "W- Cannot exit current application E- Can't find window; form.film_control"

$
0
0

I created some code in SKILL that attempts to run the script, "SCRIPT.scr". 

SKILL CODE:

axlShell("replay SCRIPT.scr")

___________________________________

SCRIPT.scr:

setwindow pcb
trapsize 47451
placementedit
artwork
setwindow form.film_control
FORM film_control filmtree popup Add 01_Top
fillin "File"
FORM film_control ok
setwindow pcb
placementedit

_____________________________________

When I type "replay SCRIPT1.scr" into the Allegro command window, the script works perfectly. But when I call axlShell("replay SCRIPT.scr") in my code, two errors pops up: 

W- Cannot exit current application
E- Can't find window; form.film_control

______________________________________

Any ideas why these errors are popping up, and what I can do to avoid them?

Thanks

Export PDF of available films using skill script

$
0
0

Hello everybody. 
I was searching through form but i didn't get an answer if there is possible to Export PDF of available films in OrCad PCB Designer 17.2 using skill.

So my question is: is there any skill function which can do that?

Thank you so much for your answer. 

Best regards.

Janez

finger number

$
0
0

Hello , if i put 3 fingers in my NMOS properties it meens that it puts 3 NMOS in parralel as shown in the photo bellow?



Viewing all 2128 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>