乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 99|回复: 3

[编程交流] 我的代码中有错误

[复制链接]

78

主题

207

帖子

129

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
395
发表于 2022-7-6 11:35:32 | 显示全部楼层 |阅读模式
我编写这个LISP是为了在我的图形中绘制引线和注释对象。让我解释一下设置。我们有名字像G,B,A,还有一个像21111。在lisp的第一部分中,我使用entsel获得块的名称,然后它通过第一次检查。
 
(如果(>(atoi PARTXT)0)
 
开头有字母的块始终为0,其他块始终大于0。我需要这样做,因为名称为21111的块被分配了另一个数字,如A10。当第一张支票是T时,它将通过a。dat文件(出于上传目的,其文件扩展名为.txt)以检索相应的“A”号。因此,如果块是B#####或G 35;####类型,它会跳过lisp的这一部分(至少这是我的计划)。
 
如果21111未在中列出。dat文件,然后将其分配编号A00。
 
然后它将解析块名并将其更改为,例如,A1234到A12.34,G1234到G12.34。但A11仍将是A11。我希望这有意义。
 
这是我的问题。当我第一次尝试标记G####或F####块时,我得到以下错误
 
但是,如果我首先尝试标记名为21345的块,例如,它可以工作。然后,当我标记其他块时,它们也起作用。我不确定我错过了什么。非常感谢您的帮助。
 
另外,我没有申报任何当地人,因为我还没用完atm。
[code](defun C:测试(/)(setq CRcecho(getvar“cmdecho”);;;存储curret sysvar(setq CRdimas(getvar“dimassoc”))(setq CRortho(getvar“orthomode”))(setq CRAttRq(getvar“ATTREQ”))(setq CRAttDi(getvar“ATTDIA”))(setvar“cmdecho”0)(setvar“dimassoc”2)(setq CRdmsty(getvar“DIMSTYLE”))(graphscr);------------------------------------------------------------------(setq*error*;;在(lambda(msg);;)的情况下重置系统变量;;;错误、esc、exit、cancel(setvar“cmdecho”CRcecho)(setvar“dimassoc”CRdimas)(命令“-dimstyle”“r”CRdmsty)(princ msg)(princ));---------------------------------------------------------------------------------(setq CRuprec(getvar“LUPREC”))(setq CRLunit(getvar“LUNITS”))(setq Partblk(entsel”\n选择零件或[ENTER]输入零件号:)(if(=Partblk nil)(progn(princ“\n***未选择块***”)(setq PartTxt(strcase(getstring”\n输入零件号:))P1(getpoint“\n指定引线起点:”);end prog1(progn(setq PartLst(entget(car Partblk)))(if(/=(cdr(assoc 0 PartLst))“INSERT”)(progn(princ“\n***对象不是块***”)(setq PARTXT(strcase(getstring“\n输入部件号:”))P1(getpoint“\n指定引线起点:”))(progn(setq PARTXT(cdr(assoc 2 PartLst))P1(car(cdr Partblk)аа])))[颜色=红色](if(>(atoi PARTXT)0)[/颜色](progn(setq ExtNbr(strcat“*”PARTXT);将asterix添加到ExtNbr文件(findfile“L:/WSICustomAutoCAD/LISP/Development/VALB_EXT.dat”);查找数据文件fp(打开文件“r”);打开文件读取项目(读取fp行);第一行是文件标签);setq(while item;处理文件的每一行(if(=item ExtNbr));比较值(setq PARTXT(读取fp行);读取行项目nil;停止搜索项目);setq(setq项目(读取fp行)PARTXT“A000”);继续搜索项目);如果);while(princ“\n***dat file name***”)(setq PartTxt PartTxt))(关闭fp);分配给变量(if(>(strlen PartTxt)4)(setq PartTxtIns(strcase(strcat(substr PartTxt 1 3)”(substr PartTxt 4 2))(setq PartTxtIns PartTxt));结束if(if(>(strlen PartTxtIns)4)(cond((=(substr PartTxt 1 1)“A”)(setq TagR“L:/drawingulities/SA-PARTR“TagL”L:/drawingulities/SA-PARTL”)(=(substr PartTxt 1 1)“B”)(setq TagR“L:/drawingulities/B-PARTR“TagL”L:/drawingulities/B-PARTL”)(=(substr PartTxt 1 1)“F”)(setq TagR“L:/drawingulities/F-PARTR“TagL”:图纸实用性/F-PARTL”)((=(substr PartTxt 1 1)“G”)(setq TagR“L:/drawingulities/G-PARTR“TagL”L:/drawingulities/G-PARTL”)((=(substr PartTxt 1 1 1)“H”)(setq TagR“L:/drawingulities/H-PARTR“TagL”L:/drawingulities/H-PARTL”));结束第1秒(cond((=(substr PartTxt 1 1)“A”)(setq TagR”L:/drawingulities/A-PARTR“TagL”L:/drawingulities/A-PARTL”)(((=(substr PartTxt 1 1)“M”)(setq TagR”L:/drawingulities/M-PARTR“TagL”L:/drawingulities/M-PARTL”)((=(substr PartTxt 1 1)“S”)(setq TagR”L:/drawingulities/S-PARTR“TagL”L:/drawingulities/S-PARTL”));结束第二秒);结束if(setq CRDSCL(getvar“DIMSCALE”);(set_wsitextstyle);(_dimleader\u设置)(if(=(tblsearch“dimstyle”WSILEADER)nil)(vl cmdf“_.dimstyle”s“WSILEADER”)(vl cmdf“_.dimstyle”s“WSILEADER”y”)(setvar“orthomode”0)(setvar“ATTREQ”1)(setvar“ATTDIA”0);(setq P1(getpoint“\n指定引线起点:”)(setq P2(getpoint“\n指定引线着陆点”P1))(如果(
回复

使用道具 举报

78

主题

207

帖子

129

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
395
发表于 2022-7-6 12:11:59 | 显示全部楼层
好吧,我去掉了这行(关闭fp),lisp似乎可以工作。不知道为什么会引起问题。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:19:25 | 显示全部楼层
GuitarGuy,
 
您需要检查文件是否找到,以及打开是否正确执行。
 
查看close函数的返回值,以了解接收错误消息的原因:眨眼:
回复

使用道具 举报

78

主题

207

帖子

129

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
395
发表于 2022-7-6 12:51:01 | 显示全部楼层
谢谢我会调查并报告
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 02:29 , Processed in 1.252550 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表