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

Any Way to identify double hits (Via)?

$
0
0

If  on the same net DRC, due to the stack via design. Alot of DRC will apply also.

Is there a way to identify this issue? Pls advice.

 Regards,

Alice


Can't get popup to gray Oops

$
0
0

I have a popup definition like this:

(setq userData (axlUIGetUserData))
  (putprop userData userData->popupId 'oldPopup)
 
  (setq popupList (axlSelectPopupList))
  (setq popupList (cons (list "Next" 'CAL_cvnNext) popupList))
  (setq popupList (cons (list "Cancel" 'CAL_cvnCancel) popupList))
  (setq popupList (cons (list "Oops" 'CAL_cvnOops) popupList))
  (setq popupList (cons (list "Done" 'CAL_cvnDone) popupList))

  (setq popupFull (axlUIPopupDefine nil popupList))
  (putprop userData popupFull 'popupFull)

  (setq popupList (axlSelectPopupList))
  (setq popupList (cons (list "Cancel" 'CAL_cvnCancel) popupList))
  (setq popupList (cons (list "Done" 'CAL_cvnDone) popupList))

  (setq popupNoOops (axlUIPopupDefine nil popupList))
  (putprop userData popupNoOops 'popupNoOops)

  ;Now activate the initial popup with "Oops" and "Next" grayed out
  (axlUICmdPopupSet popupFull)
  (axlUIPopupSet popupNoOops)

When this code is executed the popup will have Next and Oops grayed out, When a start transaction occurs I execute (axlUIPopupSet popupFull) and nothing is grayed out. If I rollBack this transaction and there are no more transactions to roll back I execute (axlUIPopupSet popupNoOops). But it doesn't gray out Next or Oops.

 Anyone with any ideas on why it's not graying out Next or Oops?

Thanks,

Craig

GRE skill Api/bundle

$
0
0

Hi,

Is there any skill api for GRE env particularly creating a bundle

Thanks in advance.

How to create bundle using skill API?

$
0
0

Hi All,

How to create bundle using skill API?

Thanks in advance

BGA Routing

$
0
0

 Hi ,

      How i can route TFBGA144 IC on a 4 layer board

Regards

Imran

axlCNSGetSpacing checking all constraints except one

$
0
0

Hi all,

I'm trying to find a way to exclude only one constraints using axlCNSGetSpacing.  So lets say I have default, A, B, C, ... and so on as constratints, but I would like to bypass constraint B from axlCNSGetSpacing.  What would be the best method to check all except one instead of listing them one by one since there may be different ones depending on the board.  (constraints B will always be the same name)

Please let me know if anyone has suggestions.

Thank you! 

Tab key path

$
0
0

Does anyone know how to define the path the tab key takes in a form on each press?

Thanks,

Craig

.brd file to PAD layout

$
0
0

 Hi Everyone,

 I would like to ask it is possible to export .brd file to PAD layout. If it is possible, can you guy show how to perform such task.

 

Thank you


Extract information from pins of a certain spacing class property

$
0
0

Hi everyone,

    From my previous post I've found out how to color pads and vias of the certain spacing class that I'm looking for.  As the title states, now I'm trying to extract and print information from those nets to a report.  Basically I want to parse through all of the nets and filter out/select all of the pads/pins with that spacing class property which I do by using this code:

 axlClearObjectCustomColor(axlDBGetDesign() ->nets)

;Select all nets/pins

axlSetFindFilter( ?enabled (list "noall" "pins"  "invisible")  ?onButtons (list "pins"))

axlAddSelectAll()

pins = axlGetSelSet()

 

  

csetNets1 = axlSelectByProperty("net", "SPACING_CONSTRAINT_SET", "TYPE1")

;;Extract which nets have the spacing class property "TYPE1"

cset1_pins = setof(pin, pins, member(pin ->net, csetNets1))

 

 ...

etc. 

From there I want to  take csetx_pins and print them out to a report.. I want the report to look like this:

**********************

Report

**********************

 

CurrentTime : Mar 25 09:31:46 2013 

 

Pin name x coord        y coord Mirrored? Rotation            SPAC_CLASSPAD_NAMENet_name

==================================================================================================================================

Q7.2 58.5 23.0 NO 270 degrees TYPE1SR061X046CONT_+3.3V

C1807.2 26.0 23.0 NO 270 degrees TYPE1SR110X100CONT+5V

Q2.1  42.0 23.0 NO 270 degrees TYPE2SO220X064GND

 

Q3.2 58.5 23.0 YES 270 degrees TYPE1SR061X046CoNT_+3.3V

C17.2 26.0 23.0 YES 270 degrees TYPE2SR110X100CONT+5V

Q9.1  42.0 23.0 YES 270 degrees TYPE3 SO220X064GND

 
As you can tell I'd like the report sorted by the mirrored property first to determine which pins are on the back of the board and the front of the board.  Then I'd like to sort the report by spacing class (TYPE1, TYPE2, TYPE3)
 
 

 Here's what I have so far:

===================================================================== 

 cl_file = outfile("net_list.rpt" "w")

; ------ Print Header 

fprintf(cl_file "**********************\n")

fprintf(cl_file "Report\n")

fprintf(cl_file "**********************\n\n")

; ------  Print CurrentTime

fprintf(cl_file "CurrentTime : %s \n" getCurrentTime())

 

; ------  Print column headers

fprintf(cl_file "Pin name \t x-coord \t y coord \t Mirrored? \t Rotation \t Spacing class \t Pad type \t Net name\n")

fprintf(cl_file 

"====================================================================================================================================\n")

design_dbid=axlDBGetDesign()

l_comp_dbids=design_dbid->components

 

foreach(comp_dbid l_comp_dbids

ref_des=comp_dbid->name

symbol_dbid=comp_dbid->symbol

xy_loc=symbol_dbid->xy

;pins= symbol_dbid->component->pins

mirrorstatus=symbol_dbid->mirrorType

rotationstatus=symbol_dbid->rotation

;padid=axlDBGetPad(symbol_dbid,"ETCH/TOP","REGULAR")

 

fprintf(cl_file "%s \t\t %L\t\t %s\t\t %4.0f degrees \n" ref_des xy_loc mirrorstatus rotationstatus)

)

close(cl_file)

 
Can anyone help guide me in a more efficient direction because it seems like this is not the most efficient method..
 
 
Thank you very much! 

s_backColor with grid cells

$
0
0

Hi

How can a background color for grid cells be set to anything apart from the standard colors shown in the documentation.

I've seen this done in grid cell based forms and have so far not been able to figure this out.

It works for setting cell->backColor to 'green, 'black, 'white etc. but I would like to use rgb or color palette numbers

Anyone know the secret to this?

Best regards

Ole

DRC

$
0
0

Hello!

How to remove the DRC by just using the command? 

control on Artwork general parameters

$
0
0

I am able to create the artwork films using axlDBCreateFilmRec, How to get control on artwork general parameter settings?

I want to change the 'Device type' 'Error action' 'output units' etc

I didn't find any axl command for this.

Thanks,

Nagaraj.

encrypter skill

$
0
0

Hi

i want to write a skill to encrypt my skill file but my code doenst wok.. please help..

here is my code:

 (defun encrypt () 

file = axlDMFileBrowse(nil nil ?optFilters "Skill files(*.il)|*.csf|Dat files(*.dat)|*.dat|)("?title"Select Skill file to Encrypt"))

if(!isDir("~/skill/encrypt") then 

   createDir("~/skill/encrypt")

fileparts = axlDMFileParts(file)

filepartsFileWext = nth(2 fileparts)

fileEncParts = strcat("~/skill/encrypt/" filepartsFileWext) 

encrypt(file fileEncParts eLock)

    )

axlCmdRegister("encrypt" 'encrypt)

Changing the artwork output dir

$
0
0

I want to write artworks to a design dependent output directory.

I have a script to create artworks,  

olddir = "output"
outdir = "output/123456-ND-A"
axlSetVariable("ads_sdart" outdir)  ; set working directory to output directory
 sprintf(script
 "scriptmode +i +n +w +c\n
 setwindow pcb\n
 artwork\n
 setwindow form.film_control\n
 FORM film_control select_all\n

 FORM film_control database_check YES\n
 FORM film_control create\n
 setwindow form.film_control\n
 FORM film_control ok\n
 setwindow pcb\n ")  ;end sprintf
 
 COD_replay_script(script)

 axlSetVariable("ads_sdart" olddir)  ;  

If I set "ads_sdart" using setup user preferences, it works fine. If I use this script, the artworks is generated in "output" and art_param.txt is generated in "output/123456-ND-A". That does not make any sense to me. Any surgestions?

Alternatively I could move the files afterwards, but that requires much more unessesary coding.

Segment Length

$
0
0

 Dear All,

 

Can anyone help me hot to get this given point. Thanks 

Capture


Find the angle between two segments

$
0
0

angle

I would like to get the angle between two segments, this must be applied to any angled situation.

I have already a function that gets the slope of two segments then the rest is a problem, i cant get the correct result

im using this formula.

angle=(m2-m1)/[1+(m2*m1)]

atan(angle)*180/math.pi

the result must be the added angle of two segments.

 

sample 1st segment = 90 degree

second segment = 45 degree

 result = 135 degree 

artwork film control

$
0
0

Hi,

is there any code to set only all inner layer into supress unconnected pads? and a selection of plot mode for power/gnd plane to set posive o negative?

Thank you 

Number of Vias in a place bound region

$
0
0

Hi all, i am new to this forum and new to skill..... i was wondering if anyone has a Skill script that could list the number of vias ( xy-cord), the via-padstack, and the package_hieght_min in a palce bound top and place bound bottom of package geometry?

also, if anyone has a skill script that could count the number of vias in a brd file. i would like to take a look and compare with mine. mine is not compiling.

Thanks

how to use "insertXMlMenu" in capture

$
0
0

 There is a "insertXMLMenu"  function in capture's tcl demo as follow:

InsertXMLMenu [list [list "TopLevelMenu"] "" "" [list "popup" "&TopLevelMenu" "0"]]

InsertXMLMenu [list [list "TopLevelMenu" "SubMenu" ] "" "" [list "action" "&SubMenu..." "0" "SubMenuActionLabel" "MenuUpdateLabel"]]

 I don't know how to fill in the parameters.

Is there I can find a document that explain these functions?

Updating pad names with SKILL

$
0
0

Hello all,

I'm a total novice at using skill skill scripting, but have a background in other languages (C++ mostly).  At my company, we have a huge database of symbols, padstacks, etc.  And would like to standardize all of them.  The only reasonable way I can see to accomplish this is to figure out how to write a script that will update every drawing automatically.

The problem I'm trying to figure out is how to take the information in a padstack (the width, height, type, etc.) and rename the padstack using that information.  So, for example, a 0.5 x 1.5 rectangular pad becomes 0p5x1p5r.pad

 Is this possible?  If so, how?

 Thanks,

 Mike

Viewing all 2175 articles
Browse latest View live


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