许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Cadence SPB 17.4:在Capture CIS中使用TCL命令

Cadence SPB 17.4:在Capture CIS中使用TCL命令

阅读数 8
点赞 0
article_banner

前言

看到可以在SPB17.4的命令行窗口运行运行TCL命令.

   记录一下零星的命令,先不管能用TCL命令干啥有用的事情。

   先运行一下能观察到效果的TCL命令, 有个感性认识。

有的命令需要带参数,有些不需要带参数。

如果是带参数不知道怎么输入参数的命令,可以直接输入命令,不带参数。

   这样,命令就会出报错信息,就能看到参数该怎么填了。例子如下:

Capture> PlacePart
[    1]Wrong number of arguments :PlacePart x y libName pkgName device boolvalue6  argument 1

Capture> 

可以看到PlacePart命令带6个参数

PlacePart x y libName pkgName device boolvalue

具体参数是什么样的值,只能去查资料和实验了。

capture CIS 和 PCB Editor 的命令行窗口都可以运行TCL命令。

   命令行窗口,默认安装完都在界面下方有显示。

   如果没有命令行窗口,在view菜单上选择命令行窗口的显示。
在这里插入图片描述

命令行窗口的内容清空

在这里插入图片描述

命令的输入

命令行窗口中,可以直接输入TCL命令,输入完回车。

   一般一个命令执行完,都会在输入的命令的下一行有提示,提示命令执行的结果(成功,失败,或者执行结果)

TCL命令的名称是区别大小写的

capture tcl command example

公用命令

GetProductVersion

取产品版本

Capture> GetProductVersion
17.4-2019 S026 (4007227)  [1/17/2022]

pwd

显示当前工程的路径

Capture> pwd
https://www.gofarlic.com/my_dev/my_local_git_prj/hardware/LS_stc_dev_board/src/stc15_exp_box4/sch

Capture> 

菜单命令

Menu “1级菜单::2级菜单::3级菜单”

   等于人工去点击,执行菜单命令

Capture> Menu "File::Save"
1

这个例子等于人工点击了文件菜单上的保存条目
在这里插入图片描述

编辑器  命令

执行完命令,能看到效果

SelectAll

选择当前原理图页面上的全部元素

Capture> SelectAll
0

UnSelectAll

取消全选

   如果前面执行了SelectAll,现在执行UnSelectAll,可以看到页面上被全选的所有器件,都变成了没有被选择的常态。

Capture> UnSelectAll
0

PlaceWire

画一条线, 需要带4个参数(线起点的坐标,线终点的坐标)

   执行完后,在原理图上,就能看到一条刚画出来的线。并且还是选中状态

Capture> PlaceWire
[    1]Wrong number of arguments :PlaceWire x1 y1 x2 y2  argument 1

Capture> PlaceWire 10 10 200 200
0

PlacePart

向原理图上放一个器件。

   命令格式

PlacePart <X-axis> <Y-Axis> <Path To Library> <Package Name> <Designator> FALSE

实际命令例子

   打开自己的一个原理图库,确定里面的器件名称
在这里插入图片描述

PlacePart 100.00 100.00 "https://www.gofarlic.com/my_dev/my_local_git_prj/my_SPB_lib/sch_lib/RES.OLB" "R_0603" "" FALSE

执行完后,原理图左上角出现了一个电阻元件。

   注意.olb的路径分隔要用’/‘,不能是从资源管理器拷贝过来的’’

参数5是这个器件的第几个子部件。

   e.g. MCU  画的时候,可能会有多个部分 MCUA?, MCUB?

   如果是第2个子部件,就填写 B

如果像电阻这种,没有子部件,参数5就是空的 ”“

SetProperty  

设置属性的值

   因为是单独做实验,需要先手工选中一个器件,再调用 SetProperty 来设置属性值。

命令格式

SetProperty propName propValue

例子

SetProperty {Property Name} {res 0603}

参数1 {Property Name} 2个大括号中包含的就是要改的属性,元件右击,编辑属性中看到的属性表格中的属性名称都是 有效的  在这里插入图片描述

在这里插入图片描述

   单独的命令实验过了,都是零星的从官方文档上看到的,但是没找到系统的命令列表说明(e.g. 具体都有哪些命令?这些命令参数都具体怎么填写?)。

   如果只是这些零星的TCL指令,真干不了啥正经事。

   先有个初步感受,以后看看能不能找到系统的文档看看。

   初步看,SPB17.4自带的文档中,有2个系列的文章有TCL用法的初步讲解。

   但是具体命令的官说明就没找到。

TCL脚本文件的使用

先写一个 脚本 文件,另存到一个英文路径(没有中文和空格)下面,命名为case1.tcl

   从官方例子抄了一个如下:

puts "This script demonstrates the list of items to check in Tcl installation"
puts "Use this script from command line or in Capture or PSpice command shells"
puts "Script provides all the details on Tcl environment  and system details"
puts "\n\n"
global env
parray env
puts "------------------------------------------------------------"
puts "CMD - puts ::tcl::tm::path list"
catch {puts [::tcl::tm::path list]}
puts ------------------------------------------------------------
puts "CMD - info library"
puts [info library]
puts ------------------------------------------------------------
puts {"CMD - $::auto_path"}
catch {puts $::auto_path}
puts ------------------------------------------------------------
puts {"CMD - $::tcl_pkgPath"}
catch {puts $::tcl_pkgPath}
puts ------------------------------------------------------------
puts {"CMD - $LCTLIBPATH"}
catch {puts $::env(TCLLIBPATH)}
puts ------------------------------------------------------------
puts "CMD - info load"
puts [info load]
puts ------------------------------------------------------------
puts "CMD - info patchlevel"
puts [info patchlevel]
puts ------------------------------------------------------------
puts "CMD - packages names"
foreach n [package names] {
        foreach m [package versions $n] {
        set p [package ifneeded $n $m]
        puts "$n $m $p"
        }
}
puts ----------------------------------------------------------
puts "CMD - List Packages Present with version"
foreach n [package names] {
    if { ! [catch {package present $n} v] } {
        puts "$n [package present $n]"
    }
}
puts ------------------------------------------------------------
catch {puts [exec systeminfo]}
puts ------------------------------------------------------------
catch {puts [exec tasklist "/v"]}
puts ---------------------END---------------------------------------

在capture的command window中运行此脚本。

source {https://www.gofarlic.com\my_dev\my_local_git_prj\study\cadence\TCL\case1.tcl}

回车后,就看到capture的命令窗口忽忽的输出执行结果。

   执行结果是啥并步不重要。从可以执行脚本能看出以下细节:

  • 如果有大段的TCL命令集合,不用通过command windows来手工输入。可以通过编写tcl文件,在cadence command window中执行一个tcl文件就好。
  • puts 是向command window打印信息的函数。

这些在capture tcl 脚本中干活的具体函数怎么用,官方文档的说明在哪里啊…? 总不能看一个例子会一个例子吧(如果想要的效果在官方例子中没有,该咋弄?),如果要想总体的干点啥有意义的活,从哪里提纲挈领的开始?

   *

补充 - TCL命令例子的来源

在这里插入图片描述

   这些零星的TCL命令,都是在SPB17.4的文档中看到的。

"https://www.gofarlic.com\Cadence\SPB_17.4\doc\" *tcl*.html

SI   + everything去找,然后打开看看,是否是TCL命令相关的。
在这里插入图片描述

   TCL命令如果要用的话,得将官方的文档好好翻翻才行。否则无法用TCL脚本干正经事情。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空