Genesis2000脚本编写常用命令剖析

合集下载

Genesis2000脚本命令大全

Genesis2000脚本命令大全

Genesis2000脚本命令大全1.switch的用法,注意每一个case必须要以breaksw结尾否则会继续执行下一个case的命令(1)另外,$<的意思是取得使用者的stand input(2)echo若加上-n的选项,则游标会停留在该行最后echo-n"Input one color:"set STOPLIGHT=$<switch($STOPLIGHT)case red:echo"red"breakswcase orange:echo"orange"breakswcase green:echo"green"breakswdefault:echo"you input$STOPLIGHT"endsw--------------------------------------------------------------------2.利用set来取得变数,set ABC="I am ABC"也可以利用`command`来取得命令且外,case也可以用万用字元*来代替set VER=`uname-r`switch($VER)case5.5:echo"run the setup of$VER"breakswcase5.3:echo"run the setup of$VER"breakswcase5.*:echo"like5.x"breakswcase4.*:echo"like4.x"breakswdefault:echo"no idea"endsw--------------------------------------------------------------------3.if的语法,比较数字set n1=1set n2=2if($n1==$n2)thenecho"$n1Equal$n2"elseecho"$n1Not Equal$n2"endif--------------------------------------------------------------------4.if的语法,比较字串set n1=abcdefset n2=abcdeif($n1==$n2)thenecho"$n1Equal$n2"elseecho"$n1Not Equal$n2"--------------------------------------------------------------------5.if的语法,比较相似的字串set n1=abcdefset n2=abcdeif($n1=~$n2)thenecho"$n1Like$n2"elseecho"$n1Not Like$n2"endif--------------------------------------------------------------------6.if的语法,比较数字的大小set n1=1set n2=2if($n1>$n2)thenecho"$n1>$n2"echo"$n1<$n2"endif--------------------------------------------------------------------7.每分钟执行一次的程式#mm等于当天时间的【分钟】数set mm=`date|cut-d''-f4|cut-d:-f2`if(-r$0.out)thenrm$0.outtouch$0.outelsetouch$0.outendifwhile($mm<=16)set mm=`date|cut-d''-f4|cut-d:-f2`echo"$mm now is`date`"sleep60#echo"$mm now is`date`">>$0.outendecho"Over">>$0.out--------------------------------------------------------------------8.一个回圈的范例,并且利用expr去作加的动作回圈的语法如下:foreach number(123)echo$numberendset counter=0while($counter<=10)echo"sleeping for5seconds"sleep5counter=`expr$counter+1`end--------------------------------------------------------------------9.设定一个用当天月份与日期作为档案名称的程式如今天是10/02,则$prefix会等于该程式+1002date.csh1002set prefix=`basename$0``date'+%m%d'`echo$0echo$prefix--------------------------------------------------------------------10.移除在foreach回圈内指定的档案内的font字串foreach file([b,e,g,h,s]*.html)echo-n"Processing$file,remove the line number`grep-n font $file`"#$log表示这个$file有几个font字串set log=`grep-c font$file`if($log=='0')thenecho",pass$file"else#先找出该档案的第一次出现font的行数,如果3,则$cmd=3dset cmd=`grep-n font$file|cut-d:-f1|head-1`d#利用sed去执行删除的动作,并把结果输出到${file}1sed$cmd$file>${file}1#如果${file}1没有资料,则passingif(-z${file}1)thenecho",${file}1is zero"elsecp${file}1$filerm{$file}1echo",$file remove ok"endifendifend#后来看过sed的更进一步用法,发现先前写的太笨了,试试这个#sed/font/d$file>${file}1#一次OK,我真是大笨蛋--------------------------------------------------------------------11.功能:将指定的档案中,出现第一次【回】的那一行,加上<ti tle>xxxx</title>foreach file(sky*.html)set filetitle=ftitle#主要部份为sed部份s/^*//表示将该行第一个字元前的空白删除echo"<title>`grep回$file|head-1|sed-e's/^*//'`</tit le>">$ftitle#将刚刚那一行,再插回去head-1$file>${file}headsed1d$file>${file}1cat$ftitle>>${file}headcat${file}1>>${file}headcp${file}head$filerm${file}1rm$ftitlerm${file}headecho"$file ok"end--------------------------------------------------------------------12.一个实际建立一个ftp server的程式里面包括许多应用,相当有参考价值(未完成)set path=(/usr/bin/usr/sbin)#set true=`grep-c ftp/etc/passwd`if($true==0)thenecho"no ftp user in your system"echo-n"do you want to create the ftp user?"set answer=$<if($answer=='y'||$answer=='Y')thenset maxid=`sort/etc/passwd|tail-1|cut-d:-f3`echo$maxidset newid=`expr$maxid+1`echo$newidecho"/usr/sbin/useradd-d/home1/ftp-u$newid-s/etc/false ftp"endifelseecho"Good.Your system already has the ftp user."set ftphome=`grep ftp:/etc/passwd|cut-d:-f6`echo$ftphomeendifif(-z$ftphome)thenecho"ftphome must be non-null"exit2endifif($ftphome=="/usr"||$ftphome=="/")then echo"ftphome can't be/or/usr"exit2endif#create the ftp home directoryif(!-d$ftphome)thenecho"mkdir$ftphome"endifecho"Setting up the ftphome for SunOS`uname-r`"if(!-d$ftphome)thenecho"mkdir-p$ftphome/usr/bin"endifcp/bin/ls$ftphome/usr/binchmod111$ftphome/usr/bin/lschown root$ftphome/usr/binchmod555$ftphome/usr/binif(-r$ftphome/bin)thenmv-f$ftphome/bin$ftphome/Obinendifln-s usr/bin$ftphome--------------------------------------------------------------------13.取得该使用者的UIDif($#argv==0)thenecho"$0usage:$1username"exit2endifset uid=`grep$1/etc/passwd|cut-d:-f3`echo$uid--------------------------------------------------------------------14.将指定档案内的html取代成htmforeach file(*.html)echo"Processing$file..."sed s/html/htm/$file>${file}1cp${file}1$filerm${file}1end--------------------------------------------------------------------15.一个简简单单的范例,看看就好#!/bin/csh-f echo.................echo WELCOME to\*TAPE COPY\* echo.................echo Enter your name:#$<can read from stand inputset name=$<echo""echo Hi$name\!set D=`date`echo Today\'s date is$D[1]$D[2]$D[3]if($D[1]==Mon)thenecho-------------------------------------------------------------echo Today is$D[1]day$name,it\'s time to copy your director ys\!echo-------------------------------------------------------------elseecho-------------------------------------------------------------echo Today is$D[1]day$name,no tape copies today\!echo-------------------------------------------------------------endif--------------------------------------------------------------------16.一个finger的程式set FINGER="/usr/ucb/finger"if(-x$FINGER)thenif($#argv==0)thencat<<TAG---------------------------------Hahahah....---------------------------------TAGelse$FINGER"$*"endifelseecho"Cannot find finger on this system."endif--------------------------------------------------------------------17.取得变数的方法set W=`who-r`echo$W[9]--------------------------------------------------------------------18.更改档案名称,将*.html-->*.htm#rename*.html to*.htmecho-n"This will change*.html to*.htm.Can I continue?(y/n): "set input=$<if($input!="y"&&$input!="Y")thenecho"Ok.Quit..."exit2endifforeach file(*.html)echo"Processing$file to`basename$file.html`.htm"mv$file`basename$file.html`.htmend--------------------------------------------------------------------19.更改档案名称,将*.htm-->*.htmlecho-n"This will change*.htm to*.html.Can I continue?(y/n): "set input=$<if($input!="y"&&$input!="Y")thenecho"Ok.Quit..."exit2endif#rename*.htm to*.htmlforeach file(*.htm)echo"Processing$file to`basename$file.htm`.html"mv$file`basename$file.htm`.htmlend--------------------------------------------------------------------20.将大写的档名改成小写的档名tr string1string2会将standard input的字串,所对应到的string1,都以string2取代foreach file(*)mv$file`echo$file|tr'[A-Z]''[a-z]'`end--------------------------------------------------------------------21.将小写的档名改成大写的档名foreach file(*)mv$file`echo$file|tr'[a-z]''[A-Z]'`end。

GENESIS2000操作指引

GENESIS2000操作指引
2 钻槽制作
a 在钻孔层将所需钻槽形状用Edit→Reshape→Change Symbol命令改为oval,例钻槽3.00X1.00,形状为oval3X1;
b 将oval用Edit→Reshape→Break命令打断成line;
c 若所需钻槽长宽比<2,需在槽两端增加两个预钻孔,方法同交叉孔。
注:所有外层使用相同的优化参数,所有内层也使用相同的优化参数,外层与内层参数可以不同。
6 无功能焊盘去除
a 用DFM→NFP Removal功能自动去除内层未连线焊盘;将参数Drill中PTH和Via选项关闭,参数Remove undrilled Pads改为No,自动去除外层NPTH焊盘;
焊盘中心为实体是正性,焊盘中心为空心是负性。
二 orig制作
orig制作由以下三部分组成:
1 层对位
制作步骤:
a 选中所有层,以钻孔为参考层,用register功能使线路、地电、阻焊与钻孔实现自动对位;
b 其它层(包括字符层)需手工移动整层,使外边框与元件面线路层的外边框重合,必要时需镜像。
c 将gtl层所有图形移回元件面线路层,如需补偿SMD,可在移动同时按要求加大;
d 选中元件面线路层所有表面贴加大11mil复制到新一层D10,参见《字符制作规范》;
e 在D10层r形D码中找出识别点,确定识别点位置,将元件面线路层板边识别点加铜环,铜环外径比内径大1mm,内径比识别点阻焊开窗大1mm,不可碰到周围图形;
f 焊接面D11按相同做法制作,层名为jobs-a.d11。
九 阻焊层制作
a 选中元件面线路层,用DFM→Solder Mask Opt功能进行阻焊优化,ERF参数选SHENNAN-E80,Clearance Opt参数设定见b;

GENESIS2000入门教程要抄写

GENESIS2000入门教程要抄写

GENESIS2000入门教程Padup谷大pad paddn缩小pad reroute扰线路Shave削pad linedown缩线line/signal线Layer 层in 里面out外面Same layer 同一层spacing 间隙cu铜皮Other layer另一层positive 正negative负Temp 临时top顶层bot底层Soldermask绿油层silk字符层power 电源导(负片) Vcc 电源层(负片) ground 地层(负片) apply 应用solder 焊锡singnal 线路信号层soldnmask绿油层input 导入component 元器件Close 关闭zoom放大缩小create 创建Reste 重新设置corner 直角step PCB文档Center 中心snap 捕捉board 板Route 锣带repair 修理、编辑resize (编辑)放大缩小analysis 分析Sinde 边、面Advanced 高级measuer 测量PTH hole 沉铜孔NPTH hole 非沉铜孔output 导出VIA hole 导通孔smd pad 贴片PAD replace 替换fill 填充Attribute 属性round 圆square 正方形rectangle 矩形Select 选择include 包含exclude 不包含step 工作单元Reshape 改变形状profile 轮廓drill 钻带rout 锣带Actions 操作流程analyis 分析DFM 自动修改编辑circuit 线性Identify 识别translate 转换job matrix 工作室repair 修补、改正Misc 辅助层dutum point 相对原点corner 直角optimization 优化origin 零点center 中心global 全部check 检查reference layer 参考层reference selection 参考选择reverse selection 反选snap 对齐invert 正负调换symbol 元素feature 半径histogram 元素exist 存在angle 角度dimensions 标准尺寸panelization 拼图fill parameters 填充参数redundancy 沉余、清除层英文简写层属性顶层文字Top silk screen GTO silk-scren顶层阻焊Top solder mask GTS solder-mask顶层线路Top layer GTL signal内层第一层power ground (gnd) PLN2 power-ground(负片)内层第二层signal layer SIG3 signal (正片)内层第三层signal layer SIG4 signal (正片)内层第四层power ground (vcc) PLN5 power-ground(负片)外层底层bottom layer GBL signal底层阻焊bottom solder mask GBS solder-mask底层文字bottom silk screen GBO silk-scren层菜单Display ---------------------- -----当前层显示的颜色Features histogram ---------------- 当前层的图像统计Copy ---------------------- ------- 复制Merge ---------------------- ------ 合并层Unmerge ------------------- ----- 反合并层(将复合层分成正负两层)Optimize lerels ----------- ----- 层优化(当正负层太多时,要优化成最大3层)Fill profile ------------------- 填充profile(轮廓)matrix ------------------ ---- 层属性表(新建、改名、删除)copper/exposed area ----------- 计算铜面积(自动算出百分几)attribates ------------------ - 层属性(较少用)notes ------------------ ------ 记事本(较少用)clip area ------------------ - 删除区域(可自定义,或定义profile)drill tools manager ----------- 钻孔管理(改孔的属性,大小等)drill filter ------------------ 钻孔过滤hole sizes ------------------ 钻孔尺寸(在分孔图转钻孔经常用到)create drill map ------------- 利用钻孔做分孔图(如有槽孔,转出来有变)update verification coupons ---- 更新首尾孔的列表re-read ------------------ 重读文件(当文件误删时无法恢复时,可重读)truncate ------------------ 删除整层数据(无法用ctrl+z恢复)compare ------------------ 层对比(很有用,可以查看层与层之间改动过的地方)flaten ------------------ 翻转(只有在拼版里面才会出现)text reference------------------文字参考create shapelist------------------产生形状列表delete shapelist------------------删除形状列表EDIT菜单undo------------------撤消上一次操作delete------------------删除move------------------移动*copy------------------复制*resize------------------修改图形大小形状*transform------------------旋转、镜像、缩放connections------------------buffer------------------reshape------------------polarity------------------更改层的极性*cerate------------------建立*change------------------更改*attributes------------------属性edit之resizeglobal------------------所有图形元素surfaces------------------沿着表面resizc therrnals and donuts------------------散热盘及同圆contourize&resize------------------表面化及修改尺寸poly line ------------------多边形by factor------------------按照比例edit之movesame layer------------------同层移动other layer------------------移动到另一层streteh parallel lines------------------平行线伸缩orthogonal strrtch------------------平角线伸缩move triplets (fixed angele)------------------角度不变地移线(ALT+D)move triplets (fixed length)------------------长度不变地移线(ALT+J)move&to panel------------------把STEP中的图形移动到其它的STEP中same layer------------------同层移动other layer------------------移动到另一层step&repeatsame layer------------------同层移动other layer------------------同层排版edit之reshapechange symbolsame ------------------更改图形break------------------打散break to Islands/holes------------------打散特殊图形arc to lines------------------弧转线line to pad------------------线转padcontourize------------------创建铜面部件(不常用)drawn to surface------------------ 线变surfaceclean holes------------------清理空洞clean surface------------------清理surfacefill------------------填充(可以将surface以线填充)design to rout ------------------设计到rout(做锣带常用,最佳值432)substitue ------------------替代(常用,分孔图转钻孔)cutting data------------------填充成surface (常用来填充CAD数据)olarityrc direction------------------封闭区域edit之polarity(图像性质)positive------------------图像为正negative------------------图像为负invert------------------正负转换edit之ceate(建立)step------------------新建一个stepsymbol------------------新建一个symbolprofile------------------新建一个profileedit之change(更改)change text------------------更改字符串pads to slots------------------pad 变成slots (槽)space tracks evenly------------------自动平均线隙(很重要)ACTIONS菜单check lists------------------检查清单re-read ERFS------------------重读erf文件netlist analyzer------------------网络分析netlist optimization------------------网络优化output------------------输出clear selete&highlight------------------取消选择或高亮reverse seleteion---------------参考选择(很重要,有TOUCH(接触)COVERED(完全接触))script action------------------设置脚本名称selete drawn------------------选择线(一般用来选大铜皮)convert netlist to layers------------------转化网络到层notes------------------文本contour operations------------------bom view------------------surface操作seletion------------------选择attributes------------------属性graphic control------------------显示图形控制snap------------------抓取measuer------------------测量工具fill parameters------------------填充参数line parameters------------------线参数colors------------------显示颜色设置components------------------零件ANAL YSIS菜单surface analyzer------------------查找铜面部件中的问题drill checks------------------钻孔检查board-drill checks------------------查找钻孔层与补偿削铣层中潜在的工艺性缺陷signal layer checks------------------线路层检查power/ground checks------------------内层检查solder mask check------------------阻焊检查silk screen checks ------------------字符层检查profile checks------------------profile检查drill summary------------------生成padstack中的孔的统计数字,查找padtack中的最小焊环quote analysis------------------smd summary------------------对外层铜箔层执行操作,生成有关被检验层中的SMD定位和封装的统计报告orbotech AOI checks------------------microvia checks------------------ 提供HDI设计的高效钻孔分析rout layer checks------------------pads for drill------------------列出每种类型钻孔的焊盘尺寸以及焊盘的数量DFM菜单cleanup------------------redundancy cleaunp------------------repair------------------sliver------------------optimization------------------yield improvement------------------advanced------------------custom------------------legacy------------------dft------------------DFM之Cleanuplegnd detection------------------文本检测construct pads (auto)------------------自动转padconstruct pads (auto,all angles)------------------自动转pad(无论角度大小)建议不用construct pads (ref)------------------手动转pad (参照erf)DFM之redundancy cleanupaaredundant line removal------------------删除重线drawn to outline ------------------以线或轮廓来代替线绘区域减少层中的部件数量DFM之repairpad snapping------------------整体PAD对齐pinhole elimination------------------除残铜补沙眼neck down repair------------------修补未完全被其它线或焊盘覆盖的圆端或方端产生的颈锁断开(即修补未连接上的线)DFM之sliversliver&acute angles------------------修补潜在加工缺陷的锐角sliver&peelable repair------------------查找修补信号层、地电层和阻焊层中的sliverlegend sliver fill------------------用于填充具有.nomenclature属性集的组件之间的sliver tangency elimination------------------DFM之optimizationsignal layer opt ------------------线路层优化line width opt------------------通过削线来达到最小值power/ground opt------------------内层优化solder mask opt------------------阻焊优化silk screen opt ------------------字符优化solder paste opt------------------锡膏优化positive plane opt ------------------DFM之yield improvementetch compansate------------------对蚀刻进行补偿、但保持CAD规范advanced teatdrops creation------------------加泪滴copper balancing------------------用于平衡铜箔分布来实现信号层上的镀覆均匀GENESIS2000常用快捷键Home 将当前图象恢复到初始状态( 等同于Ctrl + H )PageUP 扩大(Ctrl+I)PageDown 缩小(Ctrl+O)四个方向键分别向各自方向移动(配合Shift键可以实现慢移)Ctrl 跟其它键组合用,例如配合框选可以选中与框线接触的对象Shift 跟其它键组合用,例如按住Shift键不动,可用鼠标连续选中多个对象Ctrl + W 查看轮廓或骨架(有三种状态,可轮流切换)Ctrl + Z 撤消以前的操作Ctrl + X 可在按下该组合键后,再移动当前对象Ctrl + C 复制Ctrl + V 粘贴Ctrl + B 删除被选中物件Ctrl + N 查看负的对象Ctrl + S 调出抓取窗口Ctrl + I 在矩阵内可插入一行或一列(在编辑窗口可以放大)Ctrl + M 显示多于四层Ctrl + Q 框选对象后垂直或水平移动Ctrl + F 刷新Alt + G 调出控制窗口Alt + C 同层复制Alt + T 打开Transform菜单Alt + D 保持角度移动三段线的中间线Alt + L 加线的方向控制Alt + J 保持长度移动三段线的中间线Alt + O 打开Connection菜单S + A 切换抓取层S + O 关闭抓取方式S + C 抓取所选对象的中心点S + I 抓取所选对象的交叉点S + M 抓取所选对象的中点S + G 抓格点S + S 抓骨架S + E 抓边缘S + P 抓Profile双击鼠标中键取消被选的同类物件三击鼠标中键取消高亮显示状态和被选状态导入资料时,如果是这样的错误,那么查看Report,里面要是有下面那句错误提示那么就修改iol_sip-677002-Self intersecting polygon将NO改成YES,双击打开就OK了反正如果在genesis遇到这种自相交的情况,你只要把polygon选择,加个0.1mil就会修正了,修正很简单,就是把这个polygon选择,加大0.1mil,有时候你输出的时候会出现错误提示,就可以用surface 分析命令,找到那些自相交的polygon,然后选择加大1、drill数据如果是多个合在一起的话,要分为几部分并且每一部分它们对应的代码应该意义匹配,2、建立d码模版的时候,如果按照正常建立无法转换,就要考虑是否是特殊字符。

Genesis2000 Script 脚本编程1

Genesis2000 Script 脚本编程1
一:Genesis-script 之C-Shell
在unix系统中,像在DOS中的batch一样,你可以把一系列命令输入到一个叫做script的文件中. 利用source命令或者设置这个文件的x(可运行)属性并直接键入该文件名, 就像用一个命令那样, 你就可以让 C shell 从文件中读入命令并执行它们.
if ( expression ) command
if ( expression )
command
# ""(backslash)后面只能接newline(回车即可), 不能有任何其他字符载
# 单个命令command不能包括"|", "&" 以及";". 也不能使用其它控制语句
不能使用下面的格式
对其他变量, 也不会发生"下标溢出"的错误, 例如:
当(n > $#var) 时, $var[n-]不给任何结果和错误信息. 而$var[m-n]给出$var[m]到$var[$#var]的words.如果(m > $#var) 则没有任何结果
2.文件操作格式
-操作符 filename
-e 文件存在返回1(.true.), 否则返回0(.false
#!/bin/csh
set ai=1
while ( $ai <= 10 )
echo the ${ai}th time running.
@ ai++
end
4. 开关控制 switchfans
语法为:
switch ( $word )
case str_1:
你可以对路径名进行操作, 以便于去掉你不需要的部分

genesis2000脚本GUI界面编写

genesis2000脚本GUI界面编写

genesis2000脚本GUI界面编写下面就是Genesis的GUI的demo程序,从里面可以学到几乎全部的GUI的功能了.前面的变量设定的部份省略不讲,大家可以参考Shell编程#!/bin/csh# This script is for GUI demo.############################################################## ####################alias gui '${GENESIS_DIR}/e${GENESIS_VER}/all/gui'alias gui_out 'echo !:* >> $GuiDefFile'alias gui_lst 'cat !:* >> $GuiDefFile'alias dogui 'gui < $GuiDefFile > $GuiDatFile; source $GuiDatFile; rm -f $GuiDefFile $GuiDatFile'if ($?GENESIS_TMP) thenset TMP = $GENESIS_TMPelse if ($?GENESIS_DIR) thenset TMP = $GENESIS_DIR/tmpelseset TMP = /genesis/tmpendif# Set gui parametersset GuiDefFile = $TMP/GuiDefFile.$$set GuiDatFile = $TMP/GuiDatFile.$$# Set fonts for gui #设定字体前三码表示字体格式,后两码数字表示大小#格式三码h 表字型(可选t) b表字宽粗体(bold)(可选m,细体) r表字正(可选i 表斜体)set TitleFont = hbr18set NormFont = hbr14set HintFont = hbi14# Set colors for gui #颜色是用RGB的型式表示,可以用Genesis中OPTION下COLOR功能来选自己喜欢的,#然后设定到GUI中去每一种颜色用两位数字表示99表示最深00表示最浅依次为R-red G-Green B-Blueset RedColor = 990000set WhiteColor = 999999set TitleColor = 772288set NormColor = 222299############################################################## #set job_list = `dbutil list jobs | awk '{print $1}'`gui_out WIN 200 200 #确定GUI窗口左上角在屏幕中的位置gui_out BG $WhiteColor #BG background背景颜色gui_out LABEL @/tmp/orblogo.xbm #添加标签(可以是一串字符,也可以是一个XPM格式图片我们在#后面会讨论如果制作这种图片,在6.如何加入中文里有说明)gui_out BG $TitleColorgui_out FG $WhiteColor #FG font ground字体颜色gui_out LABEL GUI Demogui_out BG $NormColorgui_out TEXT user_name User name : #TEXT文字输入窗口,并将值传给user_name变量, 显示”User name”gui_out DTEXT user_name Beyond Li #设定文字窗口的初始值Default TEXT=>DTEXT, 初始为Beyond Ligui_out BW 3 #BW 区隔线宽BOLD Width 设为3gui_out FORM #表格开始gui_out LABEL 'Select Job -->'gui_out LIST StepJob 5 S 1 #LIST列表选择功能StepJob为变量5表示显示5行S表示单选#多选为M, 1表示显示时从第1个项目开始显示foreach JobName ($job_list) #这里将除了genesislib以外的所有料号名都显示于LIST列表中if ($JobName != "genesislib") thengui_out $JobName #列表的内容endifendgui_out END #LIST功能结束(LIST传回的值为具体的列表中的值)gui_out ENDFORM #表格结束gui_out BW 1gui_out OPTION pnl_size Panel size: #OPTION下拉选项功能pnl_size 为变量显示”Panel size”gui_out 16x18 #选项的内容gui_out 18x24gui_out 20x24gui_out END #选项功能结束(OPTION传回的值为项目内容具体的值如16x18等)gui_out RADIO sel_pnl 'Panel name method:' H 1 $RedColor #RADIO点选功能变量为sel_p nl “’ . ’”为显示内容#H表示水平显示1表示一栏来显示最后是颜色gui_out Default #供点选的内容gui_out Keyingui_out END #点选功能结束gui_out FORM sel_pnl 2 #表格开始注意到后面有变量sel_pnl 2表示当sel_pnl选2时表格#才显现出来否则将以阴影不可编辑或选择的方式来显示gui_out TEXT pnl_name Panel name:gui_out ENDFORMgui_out CLABEL OK #按钮功能显示”OK”gui_out END #功能结束dogui #将这些传到GUI的程序中,它就会生成我们要的GUI界面.笔者通常在GUI最后,dogui之前加入一个RADIO让人员可以选择是否退出如下gui_out RADIO Exit_Chk 'Exit:' H 1 $RedColor #RADIO点选功能变量为sel_pnl “’ . ’”为显示内容#H表示水平显示1表示一栏来显示最后是颜色gui_out No #供点选的内容gui_out Yesgui_out END #点选功能结束在dogui后紧接着就设置检查if ( $Exit_Chk == 2 ) thenexit 0endif这样就可随时推出目前的GUI画面.其它的应用大家就要思考自己的工作要求,然后将这些功能灵活使用了.。

genesis2000个人操作总结及其它软件程序转换

genesis2000个人操作总结及其它软件程序转换

文件分层后标示:板内:字符(SILK_SCREEN)开窗(SOLDER_MASK)线路(SIGNAL)板外:无需理会Genesis操作快捷键:孔编辑(指复制到钻层的圆圈):1、Alt+E+E+C(填充)2、Alt+E+E+F(打散)3、DFM+Cleanup+Ref(转Pad)Alt+E+B+O:复制后文件旋转Alt+E+E+S:改线宽Alt+O:修边框Alt+E+G+D:加内D块转线框:1、Alt+E+E+O(转块在转线)注:先将线放大在转块,在缩回原样在转线2、Alt+E+E+Surface to Outline(转线)Alt+E++R+P:外形加白线Alt+S+P+C:白线画外形Alt+E+Z+G:图形扩大(图形线扩大)Alt+T:图像放大Alt+E+Z+P:边框扩大(主要用于开窗)Alt+E+C+S:手动拼板Alt+E+M+P:线整体伸缩Alt+E+P+P或N:目标正负层更换Alt+P+E 点Unselect(反选)全局反选:选中目标 Alt+A+EAlt+E+G+S 点stagnant line:first(平均线) Alt+E+E+O (转整体) 注:将正负层阴影部份合并Ctrl+X:移动Ctrl+R:加列 Ctrl+U:加行Alt+E+E+P(铜转PAD)导出文件:(Alt+A+O)开窗层、线路层、字符层转出格式:单位:英制(Inch)MORE:钻孔转出格式:单位:公制(mm)MORE:孔环复制扩充尺寸:孔层复制到线路层淘空:1:1500倍孔层复制到开窗层:1:500倍十字架转圆环:Alt+E+E+U(十字架转圆环)+捉中心点Alt+E+E+U选Mode:Select(选同一类型)拼板步骤:Alt+S+L+T+A:自动拼板AltS+P+C:加边框点击标示层+右键Flatten(打散):标示线到拼板层拼板边框填充:点击填充层(或区域)+右键Fill profile模组板编辑铜皮层:1.将铜片从线路层中移开(新建层1)。

Genesis常用指令

Genesis常用指令

Genesis常用指令Genesis内部指令大致分如下六大指令:一、VOF 和VON关闭和开启错误处理机制二、SU_OFF 和SU_ON释放和取得最高权限(genesis)三、MOUSE取得鼠标所点的坐标值,会把坐标值放到变量$MOUSEANS内,供使用坐标值是以(x y) 或(x1 y1 x2 y2) 方式返回用法:MOUSE p|r 提示信息范例:MOUSE p “Click on feature to be deleted”set feature_coordinates = $MOUSEANSset feature_x = $feature_coordinates[1]set feature_y = $feature_coordinates[2]四、AUX设定当前窗口用,防止脚本执行到其他窗口里用法:AUX set_group,group=$n$n为窗口号码范例:COM open_entity,job=$JOB,type=step,name=$STEPset group = `echo “$COMANS”`AUX set_group,group=$group五、PAUSE暂停脚本执行,并显示提示。

(不能显示中文)用法:PAUSE 要显示的信息范例:PAUSE Please check it!六、COM用来执行LMC(line mode command)命令用法:COM 子指令,参数1,参数2,…返回值有:$COMANS 存放COM指令的执行结果$STATUS 如COM指令执行成功则为0,非0则表示执行失败。

注:line mode command指令具体可参考genesis自带帮助文档的0206.pdf,另外大部分该类指令可通过录制得到第六类指令最为重要,也最为庞大,其后可接各类子指令,下面列举一些最常用的:1、info子指令用来提取Genesis的ODB++资料库的信息,供写脚本使用注:info子指令具体可参考genesis自带帮助文档的0204.pdf的第六章其最原始的用法如下:if ($?GENESIS_TMP) thenset TMP = $GENESIS_TMPelse if ($?GENESIS_DIR) thenset TMP = $GENESIS_DIR/tmpelseset TMP = D:/genesis/tmpendifset IFILE = $TMP/do_info.$$COM info,out_file=$IFILE,write_mode=replace,args= \!:* ; source $IFILE; rm $IFILE上面太繁琐,一般都会在$ GENESIS_DIR/sys/hooks/ script_start.csh文件内,用别名命令使其简化为:alias DO_INFO 'COM info,out_file=$IFILE,write_mode=replace,args= \!:* ; source $IFILE; rm $IFILE'这样一来,就可用DO_INFO指令后接相关参数即可。

genesis script gui

genesis script gui
~/command_file
GUI 指令 vs. 图示元件
字型 颜色
tbi18 FONT tbi18
BG 008800
RGB
FG 000055
~/command_file
GUI 指令 vs. 图示元件
List(选单) List(选单) 选单 LIST JOBS 5 M 1
0527 0527new 0527new ........ Yt 复(M),单(S)选 单 选
不执行该行只将指标移至下一行 skip the line and go to the next
执行该行并将指标移至下一行 execute the line then go to the next
检测子程式 sub-script testing
相同, 与"Next"相同 但可切入子程式 相同 逐行测试 like "Next", but can go into the sub-script then test one by one
对应快速键 hot-key binding
请在适当环境下按 "Binding" " Press "Binding" under sutiable condition "
对应快速键 hot-key binding
1. 选择可用按键 select hot-key 2. 选出程式名称 select script name 3. 按 "add"完成设定 完成设定 press "add to complete
5. COM
执行命令列指令 用法 : COM command,arg1=val1,arg2=val2… 传回值: 传回值 $COMANS - 传回视窗号码 $STATUS - 0 表示成功 其他表错误码 表示成功,

Genesis常用指令

Genesis常用指令

Genesis常用指令Genesis常用指令Genesis内部指令大致分如下六大指令:一、VOF 和VON关闭和开启错误处理机制二、SU_OFF 和SU_ON释放和取得最高权限(genesis)三、MOUSE取得鼠标所点的坐标值,会把坐标值放到变量$MOUSEANS内,供使用坐标值是以(x y) 或(x1 y1 x2 y2) 方式返回用法:MOUSE p|r 提示信息范例:MOUSE p “Click on feature to be deleted”set feature_coordinates = $MOUSEANSset feature_x = $feature_coordinates[1]set feature_y = $feature_coordinates[2]四、AUX设定当前窗口用,防止脚本执行到其他窗口里用法:AUX set_group,group=$n$n为窗口号码范例:COM open_entity,job=$JOB,type=step,name=$STEPset group = `echo “$COMANS”`AUX set_group,group=$group五、PAUSE暂停脚本执行,并显示提示。

(不能显示中文)用法:PAUSE 要显示的信息范例:PAUSE Please check it!六、COM用来执行LMC(line mode command)命令用法:COM 子指令,参数1,参数2,…返回值有:$COMANS 存放COM指令的执行结果$STATUS 如COM指令执行成功则为0,非0则表示执行失败。

注:line mode command指令具体可参考genesis自带帮助文档的0206.pdf,另外大部分该类指令可通过录制得到第六类指令最为重要,也最为庞大,其后可接各类子指令,下面列举一些最常用的:1、info子指令用来提取Genesis的ODB++资料库的信息,供写脚本使用注:info子指令具体可参考genesis自带帮助文档的0204.pdf的第六章其最原始的用法如下:if ($?GENESIS_TMP) thenset TMP = $GENESIS_TMPelse if ($?GENESIS_DIR) thenset TMP = $GENESIS_DIR/tmpelseset TMP = D:/genesis/tmpendifset IFILE = $TMP/do_info.$$COM info,out_file=$IFILE,write_mode=replace,args= \!:* ; source $IFILE; rm $IFILE上面太繁琐,一般都会在$ GENESIS_DIR/sys/hooks/ script_start.csh文件内,用别名命令使其简化为:alias DO_INFO 'COM info,out_file=$IFILE,write_mode=replace,args= \!:* ; source $IFILE;rm $IFILE'这样一来,就可用DO_INFO指令后接相关参数即可。

genesis2000个人操作总结及其它软件程序转换

genesis2000个人操作总结及其它软件程序转换

文件分层后标示:板内:字符(SILK_SCREEN)开窗(SOLDER_MASK)线路(SIGNAL)板外:无需理会Genesis操作快捷键:孔编辑(指复制到钻层的圆圈):1、Alt+E+E+C(填充)2、Alt+E+E+F(打散)3、DFM+Cleanup+Ref(转Pad)Alt+E+B+O:复制后文件旋转Alt+E+E+S:改线宽Alt+O:修边框Alt+E+G+D:加内D块转线框:1、Alt+E+E+O(转块在转线)注:先将线放大在转块,在缩回原样在转线2、Alt+E+E+Surface to Outline(转线)Alt+E++R+P:外形加白线Alt+S+P+C:白线画外形Alt+E+Z+G:图形扩大(图形线扩大)Alt+T:图像放大Alt+E+Z+P:边框扩大(主要用于开窗)Alt+E+C+S:手动拼板Alt+E+M+P:线整体伸缩Alt+E+P+P或N:目标正负层更换Alt+P+E 点Unselect(反选)全局反选:选中目标 Alt+A+EAlt+E+G+S 点stagnant line:first(平均线) Alt+E+E+O (转整体) 注:将正负层阴影部份合并Ctrl+X:移动Ctrl+R:加列 Ctrl+U:加行Alt+E+E+P(铜转PAD)导出文件:(Alt+A+O)开窗层、线路层、字符层转出格式:单位:英制(Inch)MORE:钻孔转出格式:单位:公制(mm)MORE:孔环复制扩充尺寸:孔层复制到线路层淘空:1:1500倍孔层复制到开窗层:1:500倍十字架转圆环:Alt+E+E+U(十字架转圆环)+捉中心点Alt+E+E+U选Mode:Select(选同一类型)拼板步骤:Alt+S+L+T+A:自动拼板AltS+P+C:加边框点击标示层+右键Flatten(打散):标示线到拼板层拼板边框填充:点击填充层(或区域)+右键Fill profile模组板编辑铜皮层:1.将铜片从线路层中移开(新建层1)。

genesis2000脚本编写(第一章)

genesis2000脚本编写(第一章)

本章内容主要介绍genesis自动化程序编写运行环境:首先对genesis2000软件进行简单的介绍;而后介绍genesis2000自动化程序的开发方式和开发语言;最后介绍自动化程序在软件中的接口。

1.1、 genesis2000软件简介:Genesis2000软件是由Orbotech与Valor的合资公司—Frontline公司开发的CAM系统,其目的是为实工程现制前自动化,为CAM处理提供最佳解决方案,由于该软件拥有很强大的功能,很多PCB生产公司都已使用它为CAM 制前服务,笔者认为该软件有以下几方面的优点:1)令人喜欢的操作界面genesis2000软件界面设计人性化,操作简单,易学。

2)用ODB++格式,使用ODB++格式有以下三个优点:(1):使设计和制造之间数据交换最优化。

(2):目前唯一性的可扩充的结构。

(3):更精确的数据描述。

3)强大的操作辅助指令genesis2000软件的操作辅助指令可以简化很多复杂的工作,很简单的操作就可以达到我们想要的目的。

4)大的分析和优化功能genesis2000软件的Analysis和DFM功能在精密度要求越来越高的PCB行业显得极为重要,它自动进行精密的分析和优化,而用手动操作根本不可能实现。

5)自动化程序开发genesis2000软件的自动化程序可以让我们任何有规律的操作,有迹可寻的设定变成自动化,大大节省制作时间和减少人为误操作。

6)不断的围绕用户升级genesis2000软件不断围绕用户的需求进行开发新的实用的功能,笔者在使用的几年间,genesis2000开发了很多新的功能。

1.2:genesis2000软件自动化程序开发方式和语言:1.2.1genesis2000软件自动化程序的编写方式可分为以下三种:1)scripts2)hooks3)forms and flows1.2.2genesis2000软件自动化程序编写语言genesis2000软件自动化程序编写语言可以用多种语言进行实现:如SH、CSH、BSH、KSH、TCL/TK、PERL/TK,等等,本书主要介绍CSH,和PERL/TK两种比较常用的编写语言。

GENESIS DFM命令解释

GENESIS  DFM命令解释
执行后之报告(Category):
图形转换成功的区域 图形转换不成功的区域 当使用者执行 时,才出现此项 报告;意谓著同一区域有部份在萤幕 之外,所以无法转换图形.
9
Repair
Pad Snapping – 针对pad 做修整,将pad 与钻孔孔位对正. Pinhole Elimination – 针对大铜面区或空旷区,清除空洞与铜渣. Neck Down Repair -针对线路做修整,将线与线,线与pad未接好的部 份接 好.
10
Pad Snapping
基准层,系统内定drill层 偏差 ?mil以内,自动对正 偏差 ?mil以内,检查出来 欲维持的最小间距 Smd pad 是否要对正
11
Pad Snapping
执行后之报告(Category):
已自动对正的pad 检查出来,未自动对正的pad 符合自动对正的设定,但会违反最小间 距的pad,所以未对正
Genesis 2000 DFM & Checklist
张铃麟 Kay Chang T-kay@
1
前言:
DFM 全文为 Design For Manufacturing. DFM 是一个 read&write 功能的软体,也就是说: 它会将图形读入,以进行分析检查;并且依使用者 的设定,将图形修改后,重新写入. 由於会修改到图形,DFM 会自动将执行前的图形, 备份在层名<layer>+++ DFM 执行后之Undo(复原)选项,对备份层无效. 每个DFM action 都有一个特定的 ERF 档案,该 档案内可包含数个不同的 Model(模组).
7
Drawn to Outline
注意: 注意 此功能不会直接修改执行层,原执行层不变,而是将执行后之图形另 存於 <layer>_<suffix> 层;所以不会有 <layer>+++ 的层产生.

Genesis2000脚本编写常用命令解析

Genesis2000脚本编写常用命令解析

1. switch 的用法,注意每一个case 必须要以breaksw 结尾否则会继续执行下一个case 的命令(1) 另外,$< 的意思是取得使用者的stand input(2) echo 若加上-n 的选项,则游标会停留在该行最后echo -n "Input one color: "set STOPLIGHT = $<switch ($STOPLIGHT)case red:echo "red"breakswcase orange:echo "orange"breakswcase green:echo "green"breakswdefault:echo "you input $STOPLIGHT"endsw--------------------------------------------------------------------2. 利用set 来取得变数,set ABC = "I am ABC"也可以利用`command` 来取得命令且外,case 也可以用万用字元* 来代替set VER = `uname -r`switch ($VER)case 5.5:echo "run the setup of $VER"breakswcase 5.3:echo "run the setup of $VER"breakswcase 5.*:echo "like 5.x"breakswcase 4.*:echo "like 4.x"breakswdefault:echo "no idea"endsw-------------------------------------------------------------------- 3. if 的语法,比较数字set n1 = 1set n2 = 2if ($n1 == $n2) thenecho "$n1 Equal $n2"elseecho "$n1 Not Equal $n2"endif-------------------------------------------------------------------- 4. if 的语法,比较字串set n1 = abcdefset n2 = abcdeif ($n1 == $n2) thenecho "$n1 Equal $n2"elseecho "$n1 Not Equal $n2"endif-------------------------------------------------------------------- 5. if 的语法,比较相似的字串set n1 = abcdefset n2 = abcdeif ($n1 =~ $n2) thenecho "$n1 Like $n2"elseecho "$n1 Not Like $n2"endif-------------------------------------------------------------------- 6. if 的语法,比较数字的大小set n1 = 1set n2 = 2if ($n1 > $n2) thenecho "$n1 > $n2"elseecho "$n1 < $n2"endif-------------------------------------------------------------------- 7. 每分钟执行一次的程式# mm 等于当天时间的【分钟】数set mm = `date | cut -d' ' -f4 | cut -d: -f2`if ( -r $0.out ) thenrm $0.outtouch $0.outelsetouch $0.outendifwhile ( $mm <= 16 )set mm = `date | cut -d' ' -f4 | cut -d: -f2`echo "$mm now is `date`"sleep 60#echo "$mm now is `date`" >> $0.outendecho "Over" >> $0.out-------------------------------------------------------------------- 8. 一个回圈的范例,并且利用expr 去作加的动作回圈的语法如下:foreach number (1 2 3)echo $numberendset counter = 0while ($counter <= 10)echo "sleeping for 5 seconds"sleep 5counter = `expr $counter + 1 `end-------------------------------------------------------------------- 9. 设定一个用当天月份与日期作为档案名称的程式如今天是10/02 , 则$prefix 会等于该程式+ 1002date.csh1002set prefix = `basename $0``date '+ %m%d'`echo $0echo $prefix--------------------------------------------------------------------10. 移除在foreach 回圈内指定的档案内的font 字串foreach file ([b,e,g,h,s]*.html)echo -n "Processing $file, remove the line number `grep -n font $file`"# $log 表示这个$file 有几个font 字串set log = `grep -c font $file`if ( $log == '0' ) thenecho ", pass $file"else# 先找出该档案的第一次出现font 的行数,如果3,则$cmd = 3dset cmd = `grep -n font $file | cut -d: -f1 | head -1`d# 利用sed 去执行删除的动作,并把结果输出到${file}1sed $cmd $file > ${file}1# 如果${file}1 没有资料,则passingif ( -z ${file}1 ) thenecho " , ${file}1 is zero"elsecp ${file}1 $filerm {$file}1echo " , $file remove ok"endifendifend# 后来看过sed 的更进一步用法,发现先前写的太笨了,试试这个# sed /font/d $file > ${file}1# 一次OK, 我真是大笨蛋--------------------------------------------------------------------11. 功能:将指定的档案中,出现第一次【回】的那一行,加上<title> xxxx </title>foreach file (sky*.html)set filetitle = ftitle# 主要部份为sed 部份s/^ *// 表示将该行第一个字元前的空白删除echo "<title>`grep 回$file | head -1 | sed -e 's/^ *//'`</title>" > $ftitle# 将刚刚那一行,再插回去head -1 $file > ${file}headsed 1d $file > ${file}1cat $ftitle >> ${file}headcat ${file}1 >> ${file}headcp ${file}head $filerm ${file}1rm $ftitlerm ${file}headecho "$file ok"end--------------------------------------------------------------------12. 一个实际建立一个ftp server 的程式里面包括许多应用,相当有参考价值( 未完成)set path = ( /usr/bin /usr/sbin )#set true = `grep -c ftp /etc/passwd`if ( $true == 0 ) thenecho "no ftp user in your system"echo -n "do you want to create the ftp user? "set answer = $<if ($answer == 'y' || $answer == 'Y') thenset maxid = `sort /etc/passwd | tail -1 | cut -d: -f3`echo $maxidset newid = `expr $maxid + 1`echo $newidecho "/usr/sbin/useradd -d /home1/ftp -u $newid -s /etc/false ftp"endifelseecho "Good. Your system already has the ftp user. "set ftphome = `grep ftp: /etc/passwd | cut -d: -f6`echo $ftphomeendifif ( -z $ftphome ) thenecho "ftphome must be non-null"exit 2endifif ( $ftphome == "/usr" || $ftphome == "/" ) then echo "ftphome can't be / or /usr"exit 2endif# create the ftp home directoryif ( ! -d $ftphome ) thenecho "mkdir $ftphome"endifecho "Setting up the ftphome for SunOS `uname -r`"if ( ! -d $ftphome ) thenecho "mkdir -p $ftphome/usr/bin"endifcp /bin/ls $ftphome/usr/binchmod 111 $ftphome/usr/bin/lschown root $ftphome/usr/binchmod 555 $ftphome/usr/binif ( -r $ftphome/bin ) thenmv -f $ftphome/bin $ftphome/Obinendifln -s usr/bin $ftphome-------------------------------------------------------------------- 13. 取得该使用者的UIDif ( $#argv == 0 ) thenecho "$0 usage: $1 username"exit 2endifset uid = `grep $1 /etc/passwd | cut -d: -f3`echo $uid-------------------------------------------------------------------- 14. 将指定档案内的html 取代成htmforeach file ( *.html )echo "Processing $file ..."sed s/html/htm/ $file > ${file}1cp ${file}1 $filerm ${file}1end--------------------------------------------------------------------15. 一个简简单单的范例,看看就好#!/bin/csh -fecho .................echo WELCOME to \* TAPE COPY \*echo .................echo Enter your name:# $< can read from stand inputset name = $<echo " "echo Hi $name \!set D = `date`echo Today\'s date is $D[1] $D[2] $D[3]if ($D[1] == Mon) thenecho -------------------------------------------------------------echo Today is $D[1]day $name, it\'s time to copy your directorys\!echo -------------------------------------------------------------elseecho -------------------------------------------------------------echo Today is $D[1]day $name, no tape copies today\!echo -------------------------------------------------------------endif--------------------------------------------------------------------16. 一个finger 的程式set FINGER = "/usr/ucb/finger"if ( -x $FINGER ) thenif ( $#argv == 0 ) thencat << TAG---------------------------------Hahahah ....---------------------------------TAGelse$FINGER "$*"endifelseecho "Cannot find finger on this system."endif--------------------------------------------------------------------17. 取得变数的方法set W = `who -r`echo $W[9]--------------------------------------------------------------------18. 更改档案名称,将*.html --> *.htm# rename *.html to *.htmecho -n "This will change *.html to *.htm. Can I continue ? (y/n) : " set input = $<if ( $input != "y" && $input != "Y" ) thenecho "Ok. Quit..."exit 2endifforeach file ( *.html )echo "Processing $file to `basename $file .html`.htm "mv $file `basename $file .html`.htmend--------------------------------------------------------------------19. 更改档案名称,将*.htm --> *.htmlecho -n "This will change *.htm to *.html. Can I continue ? (y/n) : " set input = $<if ( $input != "y" && $input != "Y" ) thenecho "Ok. Quit..."exit 2endif# rename *.htm to *.htmlforeach file ( *.htm )echo "Processing $file to `basename $file .htm`.html "mv $file `basename $file .htm`.htmlend-------------------------------------------------------------------- 20. 将大写的档名改成小写的档名tr string1 string2 会将standard input 的字串,所对应到的string1, 都以string2 取代foreach file ( * )mv $file `echo $file | tr '[A-Z]' '[a-z]'`end-------------------------------------------------------------------- 21. 将小写的档名改成大写的档名foreach file (*)mv $file `echo $file | tr '[a-z]' '[A-Z]'`end</P< p>。

GENESIS2000操作指南

GENESIS2000操作指南

GENESIS2000操作指南一 Matrix制作以标准4层板为例,定义各层属性,按制板顺序用<Ctrl>X命令对各层进行排序。

(表1)钻孔 board drill positive外形 board rout positive元件面字符 board silk_screen positive元件面阻焊 board solder_mask positive元件面线路 board signal positive地层 board power_ground negative电层 board power_ground negative焊接面线路 board signal positive焊接面阻焊 board solder_mask positive焊接面字符 board silk_screen positive1 正确排列层次的依据有以下几种:a 客户提供层次排列顺序;b 板外有层次标识;c 板内有数字符号标识,如“1、2、3、4……”。

2 判断每层为正、负性的一般性依据为:焊盘中心为实体是正性,焊盘中心为空心是负性。

二 orig制作orig制作由以下三部分组成:1 层对位制作步骤:a 选中所有层,以钻孔为参考层,用register功能使线路、地电、阻焊与钻孔实现自动对位;b 其它层(包括字符层)需手工移动整层,使外边框与元件面线路层的外边框重合,必要时需镜像。

检查方法:a 各层焊盘中心应与钻孔中心对齐;b 各层外边框应相互重合;c 元件面字符为正字,焊接面字符为反字。

2 line转pad制作步骤:a 打开阻焊层的Features Histogram,在Lines List中选中所有,按Highlight,对照线路、字符判断是否需要转焊盘;b 同时选中并打开元件面线路和元件面阻焊,按<Ctrl>W命令至骨架显示方式,用面板中↖选定需转换的line(一般在线的末端),然后用DFM→Cleanup→Construct pads(Ref.)功能逐类进行转换。

genesis 2000软件操作

genesis 2000软件操作
designrulecheck其它的圖像工具2配合signallayeroptimization參考engineeringtoolkit的檔案功能修改尺寸修改形狀新增回復上次動作memstackfilo每個graphiceditor產生一個undostack移動到其它層平行線伸縮移動到其它層平行線伸縮複製到其它層陣列式複製複製到其它層陣列式複製修改尺寸全體的物件表面物件螃蟹腳及同心圓表面化及修改尺寸依比例全體的物件表面物件1表面物件2螃蟹腳及同心圓表面化及修改尺寸mil01mil025mil一次只能做一個依比例需加上rotate180度倒直角選取圓弧模式r角半徑角度倒斜角選取導角模式可依各邊長度或角度打散打散成島空洞還原成表面物件線轉成pad表面物件轉成padpad表面化線塗的資料轉成表面物件清除空洞清理表面物件設計轉為成型替代將角度歸零打散specialsymbolstext打散成島空洞還原成表面物件若removelayers線轉成pad表面物件轉成pad生成surfacemil01mil025mil清除空洞清理表面物件可以清除島islands填充將表面物件surfacedrawn設計轉為成型替代極性相反新增新增step新增symbol新增profile新增step新增symbol資料存在job新增profileprofile定義stepprofile建立後不可去除
回到上一個視窗
視窗功能 (Pan) 2
將座標設為視窗中心(以現在視窗的倍率為顯示倍率)
**可將滑鼠移到某座標, 再按 <Ctrl> <e> 蛇行移動視窗, 移動範圍為 90% (以現在視窗的倍率為顯示倍率) 範圍 設定起點 移動方式
量測功能 (Measurement)
量測
量測點到點 間距 網路之最小間距(<100 mil) 錫墊

GENESIS2000 脚本培训

GENESIS2000 脚本培训
要定义 symbol、就可以添加一个 pad、且这个参数也是必须定义的,缺少它就不可能执行添加 pad 这个动作,而其它
的参数我们可以定义、也可以不定义、对动作执行没什么影响,综上所述,也就是固定参数为每个指令必须定义的,
它们对动作是否能顺利执行起很大作用。而可选参数我们可以定义,也可以不定义,它们对动作是否能执行无关紧要,
(10):钻孔输出(auto drill manager):
这类指令主要用于 auto drill manager 中的设置,如添加尾孔——ncd_end、设置钻孔输出顺序——ncd_order、读取
钻孔报告 ncd_report。设置钻孔模型——ncd_set_machine。
(11):铣输出(auto rout manager):
(1):固定参数讲解:
作者:刘才林
我们在前面说添加 pad 中 symbol 这个是固定参数,下面我们写一个只有 symobl 这个参数的程序看
第 3 页共 37 页
完成于 2008 年/3 月
深圳PCB培训网 GENESIS2000脚本培训课程 作者:刘才林 网站:http://www.pcbpx.com
当然定义它们也会改变我们指令执行结果。从另一个方面来讲,这些可选参数实际上是系统默认,也不是说在动作执
行时没进行定义,而只是我们在程序中可定义可不定义,当然对某些指令对区分固定参数和可选参数没太大意义,所
以后面我们没有特别提出固定参数和可选参数的指令,大家也不必太在意,比如填充参数指令 fill_params。
这类指令主要用于 auto rout manager 中的设置,设置铣的顺序——ncr_order、读取报告——ncr_report、设置铣参
数——ncr_set_params。 作者:刘才林

genesis2000脚本运行调试

genesis2000脚本运行调试

Save: 存檔 Directory: 目錄 (script path) Script: 檔名 (script name)
4
Script Recording 2
在按 ‚錄製‛ 後, 任何操作過程 都可被錄下. After pressing “record”, all the Actions would be recorded.
9
Alias of GUI
„${GENESIS_DIR}/e${GENESIS_VER}/all/gui‟ „echo \!:* >> $GuiDefFile‟ „cat \!:* >> $GuiDefFile‟ „gui < $GuiDefFile > $GuiDatFile; source $GuiDatFile;\ rm –f $GuiDefFile $GuiDatFile‟ If ($?GENESIS_TMP) then set TMP = $GENESIS_TMP else if ($?GENESIS_DIR) then set TMP = $GENESIS_DIR/tmp else set TMP = /genesis/tmp endif set GuiDefFile = $TMP/GuiDefFile.$$ set GuiDatFile = $TMP/GuiDatFile.$$ alias gui alias gui_out alias gui_lst alias dogui
24
info command 4
-d data_type 資料種類, 預設是所有的資料種類 ‘exists‟ 是特殊種類, 可以檢測實體是否存在 ‘ERF‟ 可以取得 erf 內的參數 „MEAS‟ 可以取得 severity level 的資料 -p parameters 設定特定資料種類的部份參數 以 ‘+’ 字元作為分隔
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. switch 的用法,注意每一个case 必须要以breaksw 结尾 否则会继续执行下一个case 的命令(1) 另外,$< 的意思是取得使用者的stand input(2) echo 若加上-n 的选项,则游标会停留在该行最后echo -n "Input one color: "set STOPLIGHT = $<switch ($STOPLIGHT)case red:echo "red"breakswcase orange:echo "orange"breakswcase green:echo "green"breakswdefault:echo "you input $STOPLIGHT"endsw--------------------------------------------------------------------2. 利用set 来取得变数,set ABC = "I am ABC"也可以利用`command` 来取得命令且外,case 也可以用万用字元* 来代替set VER = `uname -r`switch ($VER)case 5.5:echo "run the setup of $VER"breakswcase 5.3:echo "run the setup of $VER"breakswcase 5.*:echo "like 5.x"breakswcase 4.*:echo "like 4.x"breakswdefault:echo "no idea"endsw--------------------------------------------------------------------3. if 的语法,比较数字set n1 = 1set n2 = 2if ($n1 == $n2) thenecho "$n1 Equal $n2"elseecho "$n1 Not Equal $n2"endif--------------------------------------------------------------------4. if 的语法,比较字串set n1 = abcdefset n2 = abcdeif ($n1 == $n2) thenecho "$n1 Equal $n2"elseecho "$n1 Not Equal $n2"endif--------------------------------------------------------------------5. if 的语法,比较相似的字串set n1 = abcdefset n2 = abcdeif ($n1 =~ $n2) thenecho "$n1 Like $n2"elseecho "$n1 Not Like $n2"endif--------------------------------------------------------------------6. if 的语法,比较数字的大小set n1 = 1set n2 = 2if ($n1 > $n2) thenecho "$n1 > $n2"elseendif--------------------------------------------------------------------7. 每分钟执行一次的程式# mm 等于当天时间的【分钟】数set mm = `date | cut -d' ' -f4 | cut -d: -f2`if ( -r $0.out ) thenrm $0.outtouch $0.outelsetouch $0.outendifwhile ( $mm <= 16 )set mm = `date | cut -d' ' -f4 | cut -d: -f2`echo "$mm now is `date`"sleep 60#echo "$mm now is `date`" >> $0.outendecho "Over" >> $0.out--------------------------------------------------------------------8. 一个回圈的范例,并且利用expr 去作加的动作回圈的语法如下:foreach number (1 2 3)echo $numberendset counter = 0while ($counter <= 10)echo "sleeping for 5 seconds"sleep 5counter = `expr $counter + 1 `end--------------------------------------------------------------------9. 设定一个用当天月份与日期作为档案名称的程式如今天是10/02 , 则$prefix 会等于该程式+ 1002set prefix = `basename $0``date '+ %m%d'`echo $0echo $prefix--------------------------------------------------------------------10. 移除在foreach 回圈内指定的档案内的font 字串foreach file ([b,e,g,h,s]*.html)echo -n "Processing $file, remove the line number `grep -n font $file`"# $log 表示这个$file 有几个font 字串set log = `grep -c font $file`if ( $log == '0' ) thenecho ", pass $file"else# 先找出该档案的第一次出现font 的行数,如果3,则$cmd = 3dset cmd = `grep -n font $file | cut -d: -f1 | head -1`d# 利用sed 去执行删除的动作,并把结果输出到${file}1sed $cmd $file > ${file}1# 如果${file}1 没有资料,则passingif ( -z ${file}1 ) thenecho " , ${file}1 is zero"elsecp ${file}1 $filerm {$file}1echo " , $file remove ok"endifendifend# 后来看过sed 的更进一步用法,发现先前写的太笨了,试试这个# sed /font/d $file > ${file}1# 一次OK, 我真是大笨蛋--------------------------------------------------------------------11. 功能:将指定的档案中,出现第一次【回】的那一行,加上<title> xxxx </title>foreach file (sky*.html)set filetitle = ftitle# 主要部份为sed 部份 s/^ *// 表示将该行第一个字元前的空白删除echo "<title>`grep 回$file | head -1 | sed -e 's/^ *//'`</title>" > $ftitle# 将刚刚那一行,再插回去head -1 $file > ${file}headsed 1d $file > ${file}1cat $ftitle >> ${file}headcat ${file}1 >> ${file}headcp ${file}head $filerm ${file}1rm $ftitlerm ${file}headecho "$file ok"end--------------------------------------------------------------------12. 一个实际建立一个ftp server 的程式 里面包括许多应用,相当有参考价值( 未完成)set path = ( /usr/bin /usr/sbin )#set true = `grep -c ftp /etc/passwd`if ( $true == 0 ) thenecho "no ftp user in your system"echo -n "do you want to create the ftp user? "set answer = $<if ($answer == 'y' || $answer == 'Y') thenset maxid = `sort /etc/passwd | tail -1 | cut -d: -f3`echo $maxidset newid = `expr $maxid + 1`echo $newidecho "/usr/sbin/useradd -d /home1/ftp -u $newid -s /etc/false ftp"endifelseecho "Good. Your system already has the ftp user. "set ftphome = `grep ftp: /etc/passwd | cut -d: -f6`echo $ftphomeendifif ( -z $ftphome ) thenecho "ftphome must be non-null"exit 2endifif ( $ftphome == "/usr" || $ftphome == "/" ) thenecho "ftphome can't be / or /usr"exit 2endif# create the ftp home directoryif ( ! -d $ftphome ) thenecho "mkdir $ftphome"endifecho "Setting up the ftphome for SunOS `uname -r`"if ( ! -d $ftphome ) thenecho "mkdir -p $ftphome/usr/bin"endifcp /bin/ls $ftphome/usr/binchmod 111 $ftphome/usr/bin/lschown root $ftphome/usr/binchmod 555 $ftphome/usr/binif ( -r $ftphome/bin ) thenmv -f $ftphome/bin $ftphome/Obinendifln -s usr/bin $ftphome--------------------------------------------------------------------13. 取得该使用者的UIDif ( $#argv == 0 ) thenecho "$0 usage: $1 username"exit 2endifset uid = `grep $1 /etc/passwd | cut -d: -f3`echo $uid--------------------------------------------------------------------14. 将指定档案内的html 取代成htmforeach file ( *.html )echo "Processing $file ..."sed s/html/htm/ $file > ${file}1cp ${file}1 $filerm ${file}1end--------------------------------------------------------------------15. 一个简简单单的范例,看看就好#!/bin/csh -fecho .................echo WELCOME to \* TAPE COPY \*echo .................echo Enter your name:# $< can read from stand inputset name = $<echo " "echo Hi $name \!set D = `date`echo Today\'s date is $D[1] $D[2] $D[3]if ($D[1] == Mon) thenecho -------------------------------------------------------------echo Today is $D[1]day $name, it\'s time to copy your directorys\! echo -------------------------------------------------------------elseecho -------------------------------------------------------------echo Today is $D[1]day $name, no tape copies today\!echo -------------------------------------------------------------endif--------------------------------------------------------------------16. 一个finger 的程式set FINGER = "/usr/ucb/finger"if ( -x $FINGER ) thenif ( $#argv == 0 ) thencat << TAG---------------------------------Hahahah ....---------------------------------TAGelse$FINGER "$*"endifelseecho "Cannot find finger on this system."endif--------------------------------------------------------------------17. 取得变数的方法set W = `who -r`echo $W[9]--------------------------------------------------------------------18. 更改档案名称,将*.html --> *.htm# rename *.html to *.htmecho -n "This will change *.html to *.htm. Can I continue ? (y/n) : " set input = $<if ( $input != "y" && $input != "Y" ) thenecho "Ok. Quit..."exit 2endifforeach file ( *.html )echo "Processing $file to `basename $file .html`.htm "mv $file `basename $file .html`.htmend--------------------------------------------------------------------19. 更改档案名称,将*.htm --> *.htmlecho -n "This will change *.htm to *.html. Can I continue ? (y/n) : " set input = $<if ( $input != "y" && $input != "Y" ) thenecho "Ok. Quit..."exit 2endif# rename *.htm to *.htmlforeach file ( *.htm )echo "Processing $file to `basename $file .htm`.html " mv $file `basename $file .htm`.htmlend--------------------------------------------------------------------20. 将大写的档名改成小写的档名tr string1 string2 会将standard input 的字串,所对应到的string1, 都以string2 取代foreach file ( * )mv $file `echo $file | tr '[A-Z]' '[a-z]'`end--------------------------------------------------------------------21. 将小写的档名改成大写的档名foreach file (*)mv $file `echo $file | tr '[a-z]' '[A-Z]'`end</P< p>。

相关文档
最新文档