⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ood_shapes.il

📁 skill语言在Cadence平台二次开发中大量使用
💻 IL
字号:

;  DISCLAIMER:
;       The user of this command assumes all responsibility and does not
;       hold Cadence Design Systems nor the author of this code for any
;       unwarranted results or problems due to the use of this code.
;
;       This code is unsupported!

; Date Created: March 1, 2004
; Tested with Allegro Release:  15.1
; Name of this file: ood_shapes.il
; Written by Ron Guthrie (rong@cadence.com)
;
; Updated: Feb. 07, 2005
;  Included code to report shapes that may be unfilled and are not marked as out of date.
;
; Usage:
; To use this file load it from the APD/Allegro command line and then issue the command
;  ood shape
;
/* This code is intended to report on shapes that are marked as being out of date based
on the fillOOD attribute attached to the shape.
It will also report what it considers to be suspect shapes. These are shapes that have a
fillOOD attribute of nil as well as no voids and the shapeAuto attribute equal to nil */

procedure( RBG_out_of_date()
let( (ood_shape l_all_shapes shape ood_shapexy ood_shape_cnt)
	axlSetFindFilter(?enabled '(noall shapes invisible) ?onButtons '(noall shapes))
	axlClearSelSet()
	axlAddSelectAll()
	ood_shape=list()
	ood_shape_cnt=0
	suspect_shape=list()
	suspect_shape_cnt=0
	l_all_shapes=axlGetSelSet()
	axlClearSelSet()
	ood_log=axlDMOpenLog("ood_shape")
	fprintf(ood_log "\tOut of date Shape log.\n\n")
	foreach(shape l_all_shapes
		if(car(parseString(shape->layer "/"))=="BOUNDARY" then
			if(shape->fillOOD then
				axlHighlightObject(shape)
				ood_shape_cnt++
				ood_shapexy=shape->bBox
				ood_shapenet=shape->net->name
				ood_shapelayer=shape->layer
				fprintf(ood_log "Out of date shape on net %s at %L\n" ood_shapenet ood_shapexy)
				fprintf(ood_log "\tClass/subclass: %s\n\n" ood_shapelayer)
				ood_shape=cons(shape ood_shape)
			else
				unless(shape->shapeAuto
					unless(shape->voids
						;suspect shape is not out of date but
						;has no voids and shapeAuto attribute is nil
						suspect_shape_cnt++
						suspect_shapexy=shape->bBox
						suspect_shapenet=shape->net->name
						suspect_shapelayer=shape->layer
						fprintf(ood_log "Possible shape problem on net %s at %L\n" suspect_shapenet suspect_shapexy)
						fprintf(ood_log "\tClass/subclass: %s\n\n" suspect_shapelayer)
					);unless
				);unless
			);if
		);endif
	);foreach
	unless(ood_shape_cnt>0
		fprintf(ood_log "No out of date shapes.\n")
	);end unless
	fprintf(ood_log "\tEnd of report.\n")
	axlDMClose(ood_log)
	if(ood_shape_cnt==1 then
		axlWindowBoxSet(ood_shapexy)
		axlVisibleLayer(ood_shapelayer t)
	);endif
	if(ood_shape_cnt==0&&suspect_shape_cnt==1 then
		axlWindowBoxSet(suspect_shapexy)
		axlVisibleLayer(suspect_shapelayer t)
	);endif
		
	axlUIViewFileCreate("ood_shape.log" "Out of Date Shapes Log" nil)
);endlet
);endproc


axlCmdRegister("ood shape" 'RBG_out_of_date ?cmdType "interactive")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -