找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1169|回复: 9

[求助] [求助]:lisp和scr

[复制链接]
发表于 2006-12-7 10:52:41 | 显示全部楼层 |阅读模式

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

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

×
(defun c:huitu1()
  (setq cm (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (command "_.UNDO" "Group")
  (setq p (list 0 0))
  (setq ename (entnext (car (entsel "请选择要绘制的零件图所在的明细栏行:"))))  
  (repeat 2   
    (setq elist (entget ename))
    (if (= (cdr (assoc 0 elist)) "ATTRIB")
     (setq a (cdr (assoc 1 elist)))   
    )
    (setq ename (EntNext ename))
  )
  (setq f1 (strcat a ".txt"))  ;获得工程数据库文件
  (setq f1 (findfile f1))
  (setq f (open f1 "r"))  
  (setq a (read-line f ))
  (command "script" "new.scr")  
  (command "insert" a p 1 1 0)
  (setq s (ssget "x"))  ;选择插入的样本图后分解
  (command "explode" s "")
  (setq a (read-line f ))
  (setq bk a)
  (setq a (strcat "("a")"))
  (setq a (read a))
  (setq b (nth 0 a))
  (setq a (read-line f ))
  (setq a (strcat "("a")"))
  (setq a (read a))
  (setq m1 (nth 0 a))
  (setq m2 (nth 1 a))
  (setq m3 (nth 2 a))
  (setq m4 (nth 3 a))
  (setq m5 (nth 4 a))
  (command "insert" bk p "" "" "" m1 m2 m3 m4 m5)  ;插入带属性的图框
  (cond ((= b "a0") (setq p (list 999 55)))   ;当需要插入不同的图框时,把P点置为不同的坐标值
        ((= b "a1") (setq p (list 651 55)))
        ((= b "a2") (setq p (list 404 55)))
        ((= b "a3") (setq p (list 235 50)))
        ((= b "a4") (setq p (list 25 50)))
        (t nil))
  (setq a (read-line f ))
  (setq a (strcat "("a")"))
  (setq a (read a))
  (setq len (length a))
  (setq n1 1)
  (repeat len      
     (setq char-B (nth (- n1 1) a))   ;获得要替换的文字
     (setq char-A (strcat "VS" (itoa n1)))
     (reptext char-A char-B)  ;替换尺寸文本
     (prin1 char-A)
     (prin1 char-B)
     (setq n1(1+ n1))
   )
  (setq a (read-line f ))
  (setq a (strcat "("a")"))
  (setq a (read a))
  (setq b (nth 0 a))
  (while (= b "1") ;设置的判别符号,符号为1绘制明细表,否则不绘制明细表
  (setq bk "mxb")   ;插入明细表表头
  (setq p1 (list (car p) (+ (cadr p) 10)))
  (command "insert" bk p 1 1 0)
  (while (setq a (read-line f ))  ;循环插入明细表表栏,并填写相关内容
     (setq a (strcat "("a")"))
     (setq a (read a))
     (mxb a)
     (setq p1 (list (car p1) (+ 8 (cadr p1))))
   )
   )
  (command "zoom" "a") ;把图形放至最大化
  (command "script" "save.scr")
  (command "script" "close.scr")
  (command "_.UNDO" "End")
  (setvar "cmdecho" cm)
  (close f)  ;关闭数据库文件
  
  (princ)
)

这是一段根据当前总装配图绘制零件图的程序,想把零件图绘制到新建的图纸上,所以中间我尝试着加了一行执行脚本的命令,但这样做,脚本没有被执行,新绘制的零件图和总装图绘在了同一个视口上。请大家帮我看看。脚本如下:

new
...........

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

已领礼包: 8160个

财富等级: 富甲天下

发表于 2006-12-7 13:15:31 | 显示全部楼层
Lisp==> 脚本 ===>结束

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

使用道具 举报

 楼主| 发表于 2006-12-7 15:14:44 | 显示全部楼层
(command "script" "new.scr")就没有执行,没有新的空图产生
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-7 18:42:02 | 显示全部楼层
1.你的路径是不是正确
2.如果在脚本中用"new"的话,一定要在new下面加个空行,代表回车
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-8 15:41:43 | 显示全部楼层
路径是对的,加空行,把。。。。。等省略号去掉吗?
我现在把方法改了,编了一段VBA的宏,用宏实现了打开新的视图。但又有个问题产生了,在新图中无法实现绘图,图仍然是绘制在就的视图中,我不知该怎么写程序,新的视图才能接受插入图块等绘图命令。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2006-12-8 17:15:38 | 显示全部楼层
使用VBA就得服从她的方式。虽然她不一定是你想要的。
必须以对象方法加参数的方式,最明显一点就是不能直接调用CAD的原始命令。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-9 14:40:51 | 显示全部楼层
这点我知道。宏是正确的,我是在LISP 程序中调用VBA宏
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8160个

财富等级: 富甲天下

发表于 2006-12-9 16:17:35 | 显示全部楼层
Lisp 定义的函式其效力仅及于active的图档
换句话说重开后的图档或切换到其他已开启的图档
都不是它的工作对象
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 20:59 , Processed in 0.181733 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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