找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 780|回复: 9

[LISP程序]:请问一个技术问题!

[复制链接]
发表于 2004-2-5 17:17:16 | 显示全部楼层 |阅读模式

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

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

×
这个程序有很多人已经实验过,是EAO老大编辑的,而且能用,大家都说能用,但我怎么试也不行啊!所以来问问。这个命令是为把一堆相同的块的部分几个块改名字的程序,当然,用rename好象可以,但不能框选,用这个可以同时框选多个块。但是我使用是出现了问题,先看看原程序把,是这样的:

先定义个新块,里面的内容照搬好了.

把你选中的insert变为新名称.

任意一个新块双击...


code: (defun c:cccc( / e en j new old ss)
(defun dxf(a b)(cdr(assoc a b)))
(command"undo""group")
(if(and(setq ss(ssget '((0 . "INSERT"))))
        (setq new(getstring "\n名称:"))
        (not(tblsearch "block" new))   
     )
   (progn
    (setq old(dxf 2(entget(ssname ss 0))))
    (command "-insert" old '(0 0) "1""1" 0)
    (command "explode"(entlast))
    (command "-block" new '(0 0)"P" "")
    (setq j 0)
    (repeat(sslength ss)
     (setq e(ssname ss j)
           en(entget e)
           en(subst(cons 2 new)(assoc 2 en)en)
      )
      (entmod en)
      (setq j(1+ j))
     )
   ))(command"undo""end")
   (princ)
)





块里不要有属性!
执行完就可以双击啦.




我能用这个命令,我想把部分名称问1的块改名称为14。但是系统要我按F1!!烦死,能帮我看看什么问题吗?出现这个的情况:

Command: cccc
Select objects: Other corner: 14 found

Select objects:
名称:14
Unknown command "-INSERT". Press F1 for help.
Unknown command "1". Press F1 for help.
Unknown command "1". Press F1 for help.
Unknown command "1". Press F1 for help.
0
Unknown command "CCCC". Press F1 for help.
Unknown command "-BLOCK". Press F1 for help.
Unknown command "14". Press F1 for help.
Unknown command "P". Press F1 for help.
Unknown command "CCCC". Press F1 for help.

这个命令那么好,为什么就我不能用!!
大家元宵快乐。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-2-5 18:11:45 | 显示全部楼层

(command "-insert" old '(0 0) "1" "1" 0)

(command "-block" new '(0 0)"P" "")
两语句改为
(command "insert" old '(0 0) "1" "1" 0)

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

使用道具 举报

已领礼包: 1915个

财富等级: 堆金积玉

发表于 2004-2-6 23:11:12 | 显示全部楼层
(command "-insert" old '(0 0) "1" "1" 0)

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

使用道具 举报

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

使用道具 举报

发表于 2004-2-9 00:41:24 | 显示全部楼层
最初由 陌生人 发布
[B]r14应该为_
r200x应该为- [/B]

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

使用道具 举报

 楼主| 发表于 2004-2-9 15:30:59 | 显示全部楼层
陌生人老大是说得最正确!!不过我得到这个LSP程序也是看了陌生人和EAO激烈争论出来的,呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

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

使用道具 举报

发表于 2004-2-10 14:20:57 | 显示全部楼层
最初由 haojia 发布
[B]陌生人老大是说得最正确!!不过我得到这个LSP程序也是看了陌生人和EAO激烈争论出来的,呵呵 [/B]


哈哈,此言差已!其实qlin最正确
因为在lsp中 (command ".insert" ....)是不会调用对话框的。所以加-还是_.都是画蛇添足。不如不加
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 23个

财富等级: 恭喜发财

发表于 2004-2-10 16:11:27 | 显示全部楼层
Q: 为什么需要在命令名称前面加上 "_" 和"."

A: 如果所开发的 AutoLISP 程序可能在外语版的 AutoCAD 中使用,则可以在每一个命令和关键字前面加下划线 (_),这样系统将会自动翻译标准的 AutoCAD 命令和关键字。

(command "_line" pt1 pt2 pt3 "_c")

如果还想使用圆点前缀(可避免使用重定义命令),圆点和下划线之间的顺序可以任意,例如“._line”和“_.line”都是合法的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 23个

财富等级: 恭喜发财

发表于 2004-2-10 16:20:35 | 显示全部楼层
命令名前面的"-"(减号)不是"加"上去的,这是一个命令行方式的命令,以区别现在的对话框方式的命令.

例如: layer和-layer

默认的,在Visual中LISP程序中command函数中参数的的"命令名"实际都是调用命令行版本,
如果需要使用对话框版本,需要在command函数前使用initdia函数,具体请看VL帮助文档
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 02:01 , Processed in 0.322427 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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