找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1415|回复: 7

[求助] [求助]:Lisp编的程运行时要出现未知命令

[复制链接]
发表于 2004-4-11 09:52:22 | 显示全部楼层 |阅读模式

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

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

×
请教:我用Lisp编的程序,如c:dmljj 运行时要出现
dmljj 未知命令 "DMLJJ"。  按 F1 查看帮助.
程序又可以执行,不知差一段什么语句。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2004-4-11 10:14:14 | 显示全部楼层

Re: [求助]:Lisp编的程运行时要出现未知命令

最初由 yangjr 发布
[B]请教:我用Lisp编的程序,如c:dmljj 运行时要出现
dmljj 未知命令 "DMLJJ"。  按 F1 查看帮助.
程序又可以执行,不知差一段什么语句。 [/B]


你不把程序贴上来,没有办法帮你看。

一般情况下,你的程序里面的 command 调用的语句里面,多写了参数的原因。你去看看。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-11 10:14:31 | 显示全部楼层
说详细一点,最好贴段程序来让大家帮你看看。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-4-11 12:51:58 | 显示全部楼层
我是用菜单加载^C^C(load "D:/JJJZ/ylsp/ljx.lsp") ljx

[php]
;;-----连接线程序
(defun C:ljx ()
  (setq old_err *error*)
  (setvar "CMDECHO" 0)
  (command "osnap" "non")
  (command "Ortho" "off")
  (setvar "LIMCHECK" 0)
  (command "FILLET" "R" 0 "")
  (while
  (setq fg1 (entsel "\n选取第一条需连接的线:"))
             
        (setq fg3 (car fg1))               
        (setq fg4 (entget fg3))
        (setq Linee (cdr (assoc 0 fg4)))
        (setq pe1 (cdr (assoc 8 fg4)))
        (if (/= linee "LINE")
        (progn
        (ALERT "\n你选择的不是LINE线\n  程序将退出!!")  
        (quit)
         ))                                       
        (setq pt1 (cdr (assoc 10 fg4)))       
        (setq pt2 (cdr (assoc 11 fg4)))
  (setq fg2 (entsel "\n选取第二条需连接的线:"))
              
        (setq fg3 (car fg2))               
        (setq fg4 (entget fg3))
        (setq Linee (cdr (assoc 0 fg4)))
    (if (/= linee "LINE")
        (progn
        (ALERT "\n你选择的不是LINE线\n  程序将退出!!")  
        (quit)
         ))                      
        (setq pt3 (cdr (assoc 10 fg4)))       
        (setq pt4 (cdr (assoc 11 fg4)))
        (COMMAND "LAYER" "s" pe1 "")         
   (Ljqxx)
   )
   (princ)
)
;;-----------------------------------
(defun Ljqxx ( / anga angb trr)     
     (setq anga (angle pt1 pt2))           
     (setq angb (angle pt3 pt4))
     (setq trr nil)
      (SETQ anga (/ anga (/ pi 180)))
      (SETQ angb (/ angb (/ pi 180)))
     (setq trr (abs (- anga angb)))     ;判断两条线是否在一直线上
     (setq trr (fix trr))
     (if (= trr 180) (setq trr 0))
     (if (>= trr 360) (setq trr 0))
     (if (= trr 0)
     (far)
     (command "FILLET" fg1 fg2 "")
    )
  )
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2004-4-11 13:17:47 | 显示全部楼层
最初由 yangjr 发布
[B]我是用菜单加载^C^C(load "D:/JJJZ/ylsp/ljx.lsp") ljx

[php]
;;-----连接线程序
(defun C:ljx ()
  (setq old_err *error*)
  (setvar "CMDECHO" 0)
  (command "osnap" "non")
  (command "Ortho" "off")... [/B]


你把:


  1. (command "FILLET" fg1 fg2 "")


最后的引号去掉试试。

另外对你的程序提点建议:
能够设置系统变量代替命令的,最好用系统变量,因为命令执行效率低下。ACAD执行一个命令要做很多额外的判断工作。

[program]
  (command "osnap" "non")
  (command "Ortho" "off")
  (setvar "LIMCHECK" 0)
  (command "FILLET" "R" 0 "")
[/program]

可以改成:

[program]
  (setvar "osmode" 0)
  (setvar "orthomode" 0)
  (setvar "LIMCHECK" 0)
  (setvar "filletrad" 0)
[/program]

另外,函数调用最好带参数,这样函数才能独立,比如你上面的程序调用:

Ljqxx

写成:

(defun  Ljqxx (fg1 fg2 / ......)
........
)

比较好,不要用全局变量在主程序和函数间传递,这样程序不易维护,出错调试的代价也多。变量的生存期就应该在它所在的块内可见。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-11 13:47:12 | 显示全部楼层
[php]

;;-----连接线程序
(defun C:ljx ()
  (setq old_err *error*)
  (setvar "CMDECHO" 0)
  (command "osnap" "non")
  (command "ortho" "off")
  (setvar "LIMCHECK" 0)
  (setvar "filletrad" 0);(command "FILLET" "R" 0 "")
  (while
  (setq fg1 (entsel "\n选取第一条需连接的线:"))  
        (setq fg3 (car fg1))         
        (setq fg4 (entget fg3))
        (setq Linee (cdr (assoc 0 fg4)))
        (setq pe1 (cdr (assoc 8 fg4)))
        (if (/= linee "LINE")
          (progn
            (ALERT "\n你选择的不是LINE线\n  程序将退出!!")
            (quit)
          )
        )              
        (setq pt1 (cdr (assoc 10 fg4)))     
        (setq pt2 (cdr (assoc 11 fg4)))
  (setq fg2 (entsel "\n选取第二条需连接的线:"))   
        (setq fg3 (car fg2))         
        (setq fg4 (entget fg3))
        (setq Linee (cdr (assoc 0 fg4)))
    (if (/= linee "LINE")
        (progn
        (ALERT "\n你选择的不是LINE线\n  程序将退出!!")   
        (quit)
         ))               
        (setq pt3 (cdr (assoc 10 fg4)))     
        (setq pt4 (cdr (assoc 11 fg4)))
        (COMMAND "LAYER" "s" pe1 "")     
   (Ljqxx)
   )
   (princ)
)
;;-----------------------------------
(defun Ljqxx ( / anga angb trr)      
     (setq anga (angle pt1 pt2))            
     (setq angb (angle pt3 pt4))
     (setq trr nil)
      (SETQ anga (/ anga (/ pi 180)))
      (SETQ angb (/ angb (/ pi 180)))
     (setq trr (abs (- anga angb)))     ;判断两条线是否在一直线上
     (setq trr (fix trr))
     (if (= trr 180) (setq trr 0))
     (if (>= trr 360) (setq trr 0))
     (if (= trr 0)
     (far) ;无.
     (command "FILLET" fg1 fg2);;(command "FILLET" fg1 fg2 "")  多了“”.
    )
  )
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-4-11 15:35:47 | 显示全部楼层
问题解决了,函数调用带参数还没有很明白,先看看书再请教。非常谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-22 20:06:19 | 显示全部楼层
多谢xdsoft的建议。我也受益了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-18 02:30 , Processed in 0.357800 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表