找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 969|回复: 5

[求助] [求助]:帮我看看这个LISP为什么不能在R14下用

[复制链接]
发表于 2008-8-22 20:08:25 | 显示全部楼层 |阅读模式

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

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

×
帮我看看这个LISP为什么不能在R14下用,2004上能用,但我一直都是用R14.



下面是代码

tz.DCL

tz : dialog{
label="文字替换";
:row {
:column {
:edit_box{
label="文字替换内容:";
width=40;
key="wbnr";}
:row {
:button{
label="添加到本机";
key="wbtj";
fixed_width = true;
width=11;}
:button{
label="从本机删除";
key="wbsc";
fixed_width = true;
width=11;
}
}
}

:list_box{
label="本机已有文字内容:";
list="本机已有文字内容\n";
value="0";
key="wbbc";
width=30;
height=10;}

}
:row{
:button{
label="选择需替换的文本";
key="wbxz";
fixed_width = true;
width=11;}
:cancel_button{
fixed_width=true;
width=11;
}
}
}



tz.lsp

;;;调用菜单
(defun c:tz ()
(setq flag 4)
(setq dcl_id (load_dialog "tz.dcl"))
(if (< dcl_id 0) (exit))
(if (not (new_dialog "tz" dcl_id))
(exit)
)
(setq txtfile (findfile "tz.txt"))
(setq txtlist (Get_Txt txtfile))
(additems "wbbc" txtlist)
  (while (> flag 2)
  (action_tile "wbtj" "(wbtj)")
  (action_tile "wbbc" "(wbbc $value)")
  (action_tile "wbsc" "(wbsc)")
  (action_tile "wbxz" "(wbxz0)(done_dialog 1)")
  (action_tile "cancel" "(done_dialog 0)")
    (setq flag (start_dialog))
    (if (= flag 1)
       (wbxz wbnrn txtlist))
     )
  (unload_dialog dcl_id)
(princ)
)


;;;把本机上文本添入菜单中
(defun wbtj()
(setq txtlist (append txtlist (list (get_tile"wbnr"))))
(additems "wbbc" txtlist)
)
;;;把本机上文本删除
(defun wbsc()
(setq txtlist (vl-remove wbnrn txtlist))
(additems "wbbc" txtlist)
)
(defun wbbc(vva)
(setq wbnrn (nth (atoi vva) txtlist))
(set_tile "wbnr" wbnrn)
)
(defun wbxz0()
(setq wbnrn (get_tile "wbnr"))
)
(defun wbxz(wbnrn txtlist / ent1 ent2)
(if txtlist
(write_Txt txtfile txtlist)
)
(vl-load-com)
(setq ent1 (vlax-ename->vla-object (car (entsel))))
(setq ent2 (vla-put-textstring ent1 wbnrn))
)

;;将文本文件中的内容转换为列表
(defun Get_Txt (datfile / tmplst x fn)
  (setq fn (open datfile "r"))
  (while (setq x (read-line fn))
        (setq tmplst(append tmplst(list x)))
       )
     (close fn)
  tmplst
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 10401个

财富等级: 富甲天下

发表于 2008-8-23 23:07:53 | 显示全部楼层
将所有VL开头的函数替换掉就可以在R14中运行了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1915个

财富等级: 堆金积玉

发表于 2008-8-23 23:13:41 | 显示全部楼层
R14 不支持带有VL开头的函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-8-24 17:14:17 | 显示全部楼层
把这段
(vl-load-com)
(setq ent1 (vlax-ename->vla-object (car (entsel))))
(setq ent2 (vla-put-textstring ent1 wbnrn))
更改为
(setq xzwb (car (entsel))
     xzwblb (entget xzwb)
      thwbnr (assoc 1 xzwblb)
      xzwbnr (cons 1 wbnrn)
      xzwblb (subst xzwbnr thwbnr xzwblb))
(entmod xzwblb)
(entupd xzwb)
应该就可以了,我没有R14,无法调试.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-24 21:42:58 | 显示全部楼层
最初由 791221ni 发布
[B]把这段
(vl-load-com)
(setq ent1 (vlax-ename->vla-object (car (entsel))))
(setq ent2 (vla-put-textstring ent1 wbnrn))
更改为
(setq xzwb (car (entsel))
     xzwblb (entget xzwb)
      thwbnr (ass... [/B]


谢谢,已经修改成功!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 16:28 , Processed in 0.176001 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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