在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1655|回复: 3

[求助] 原理图按照坐标放置器件,并给器件参数赋值debug

[复制链接]
发表于 2022-6-26 13:26:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 lauziming 于 2022-6-26 13:26 编辑

我想模拟GUI的命令将器件按照坐标放入原理图,并且将一些参数赋值;
我把三次循环的命令拆成单次执行可以正常执行,放到foreach循环不会按照坐标去放置器件,需要手动点击放置,实在没看出来为什么

实现下面的效果

image.png


之前比较理想的脚本是下面的两条,只要加入红色的脚本进行赋值就会报错,不知道是不是"analogLib"库不允许这样操作的原因,折腾几天我放弃了,还是搞GUI命令比较直观
masterCV = dbOpenCellViewByType( "analogLib" "res" "symbol" nil "r" )
dbCreateParamInst(geGetEditCellView() masterCV nil list(0 0) "R0" 1 list(list("w" "string" "2.0") t))

**********************************foreach脚本
procedure(PlaceInst(cv)
prog(()
        xcoordinate = 0
        ycoordinate = 0
        voltage = "0.9"
        new_var = '(("var1" "1") ("var2" "2") ("var3" "3"))
        ;cv = geGetEditCellView()
        unless(cv~>cellViewType=="schematic"
                warn("not a schematic view\n")
                return()
        );endunless
        foreach(var new_var
                schHiCreateInst()
                schCreateInstForm->libraryName->value="analogLib"
                schCreateInstForm->cellName->value="res"
                schCreateInstForm->r->value=car(var);res value
                print(getCurrentTime())
                ;schCreateInstForm->w->value=voltage                        
                mouseAddPt(t)
                xcoordinate:ycoordinate
                hiiToggleEnterForm(schCreateInstForm)
                cancelEnterFun(schCreateInstForm)
                ycoordinate=ycoordinate+0.5
                print(xcoordinate:ycoordinate)
        );endforeach
);endprog
);endprocedure
getcellview=geGetEditCellView()
PlaceInst(getcellview)

*********************************************拆成单次运行的脚本
xcoordinate = 0
ycoordinate = 0
voltage = "0.9"
new_var = '(("var1" "1") ("var2" "2") ("var3" "3"))
;************************NO0
schHiCreateInst()
schCreateInstForm->libraryName->value="analogLib"
schCreateInstForm->cellName->value="res"
schCreateInstForm->r->value=car(nth(0 new_var));res value
print(getCurrentTime())                        
mouseAddPt(t)
xcoordinate:ycoordinate
hiiToggleEnterForm(schCreateInstForm)
cancelEnterFun(schCreateInstForm)
ycoordinate=ycoordinate+0.5
print(xcoordinate:ycoordinate)

;************************NO1
schHiCreateInst()
schCreateInstForm->libraryName->value="analogLib"
schCreateInstForm->cellName->value="res"
schCreateInstForm->r->value=car(nth(1 new_var));res value
print(getCurrentTime())                        
mouseAddPt(t)
xcoordinate:ycoordinate
hiiToggleEnterForm(schCreateInstForm)
cancelEnterFun(schCreateInstForm)
ycoordinate=ycoordinate+0.5
print(xcoordinate:ycoordinate)

;************************NO2
schHiCreateInst()
schCreateInstForm->libraryName->value="analogLib"
schCreateInstForm->cellName->value="res"
schCreateInstForm->r->value=car(nth(1 new_var));res value
print(getCurrentTime())                        
mouseAddPt(t)
xcoordinate:ycoordinate
hiiToggleEnterForm(schCreateInstForm)
cancelEnterFun(schCreateInstForm)
ycoordinate=ycoordinate+0.5
print(xcoordinate:ycoordinate)



 楼主| 发表于 2022-6-26 13:26:56 | 显示全部楼层
顶一下
发表于 2022-6-26 17:19:56 | 显示全部楼层
顶一下
发表于 2022-6-27 10:19:31 | 显示全部楼层
这种可能还是手动摆比较快,除非1000个电阻 值还不一样 不过这种没有匹配 也是不太现实 楼主还是辛苦了 nice try~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 04:31 , Processed in 0.017704 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表