乐筑天下

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

[编程交流] 帮助修复lisp

[复制链接]

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 12:47:33 | 显示全部楼层 |阅读模式
在我开始工作之前,我的办公室就一直在使用下面的两个代码。他们过去表现很好,今天他们决定停下来。第一个错误是:
命令:sa
拾取插入点:
角度?:
; 错误:*error*函数内发生错误参数太多
; 错误:*error*函数内发生错误参数太多
未知命令“SA”。按F1键获取帮助。
对于第二个错误:
命令:4SA
NPICK点;错误:*error*函数内发生错误过多
论据
; 错误:*error*函数内发生错误参数太多
未知命令“SA”。按F1键获取帮助。
未知命令“@15,0”。按F1键获取帮助。
48
LISP命令不可用。
48
(是的,它们都已加载,我对此进行了双重和三重检查)
  1. inserts air direction arrow (supply)
  2. (defun c:sa ()
  3. (setq ortho (getvar "orthomode"))
  4. (setq scl (getvar "dimscale" ))
  5. (setvar "orthomode" 1)
  6. (setq pnt (getpoint "\nPick insertion point:" ))
  7. (setq a (getangle "\nAngle?:" pnt ))(terpri)
  8. (setq ang ( * a 57.3))
  9. (command "layer" "set" "txt" "")
  10. (command "insert" "sa" pnt scl scl ang)
  11. )

 
  1. inserts 4 way air direction arrows for diffuser
  2. (defun c:4sa ()
  3. (SETVAR "OSMODE" 64)
  4. (SETQ INS (GETPOINT "\NPICK POINT"))
  5. (COMMAND "ID" INS)
  6. (setvar "clayer" "txt")
  7. (setq scl (getvar "dimscale" ))
  8. (command "insert" "sa" "@15,0" scl scl 0)
  9. (COMMAND "ARRAY" "LAST" "" "POLAR" "@-15,0" "4" "" "" )
  10. (SETVAR "OSMODE" 0)
  11. )
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 13:03:55 | 显示全部楼层
chelsea1307,
 
请参阅下面的代码。
它正在寻找一个层调用txt。
我添加了一个图层命令,如果图层不在图形中,则生成该图层。
还要确保块调用sa位于acad搜索路径中。
如果图形中已经有这些图层,请跳过此操作。
 
除此之外,他们似乎工作。我没有得到你所指的错误。
 
这是可能的,因为程序中的变量未声明为局部变量,并且
可能与可能加载的另一个程序发生干扰。
只是一个猜测。
 
  1. ;inserts air direction arrow (supply)
  2. (defun c:sa ()
  3. (setq ortho (getvar "orthomode"))
  4. (setq scl (getvar "dimscale" ))
  5. (setvar "orthomode" 1)
  6. (command "_-layer" "_make" "txt" "")    ;I added this line
  7. (setq pnt (getpoint "\nPick insertion point:" ))
  8. (setq a (getangle "\nAngle?:" pnt ))(terpri)
  9. (setq ang ( * a 57.3))
  10. (command "_-layer" "_set" "txt" "")
  11. (command "_-insert" "sa" pnt scl scl ang) ;Make sure this block is in the acad path
  12. )

 
 
 
  1. ;inserts 4 way air direction arrows for diffuser
  2. (defun c:4sa ()
  3. (SETVAR "OSMODE" 64)
  4. (SETQ INS (GETPOINT "\nPICK POINT"))
  5. (COMMAND "ID" INS)
  6. (command "_-layer" "_make" "txt" "")  ;I added this line
  7. (setvar "clayer" "txt")
  8. (setq scl (getvar "dimscale" ))
  9. (command "_-insert" "sa" "@15,0" scl scl 0)  ;Make sure this block is in the acad path
  10. (COMMAND "_ARRAY" "LAST" "" "POLAR" "@-15,0" "4" "" "" )
  11. (SETVAR "OSMODE" 0)
  12. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:12:43 | 显示全部楼层
由于您似乎没有在函数中定义错误处理程序,*error*函数消息中的错误将由写得不好的*error*处理程序引起。
 
在命令行中键入此命令,然后尝试重新运行原始LISP:
 
  1. (setq *error* nil)
回复

使用道具 举报

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 13:23:59 | 显示全部楼层
谢谢buzzard我会试试你放的,
李,我应该把它加到Lisp程序的句子里吗?或者只是看看他们是否在那之后工作?
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 13:45:11 | 显示全部楼层
 
chelsea1307,
 
正如李所提到的,在命令提示符下运行它。它用于清除错误处理程序。然后在清除后再次运行程序。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:48:59 | 显示全部楼层
 
^^^  ^^^
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 04:53 , Processed in 0.412646 second(s), 64 queries .

© 2020-2025 乐筑天下

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