找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2063|回复: 2

[LISP程序]:如何用lisp打开一个dwg文件并另存激活

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

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

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

×
以下各语句单独执行时没有错误,
即第一步:将一个原始文件fjm0(处于激活状态)
   (vl-load-com)
   (setq fjm0 "d:/CAD与数据开发/00BLOCK/电信井.dwg")
   (vla-activate (vla-open (vla-get-documents (vlax-get-acad-object)) fjm0))
第二步:将文件另存fjm1
   (setq fjm1 "d:/CAD与数据开发/00BLOCK/电信井33.dwg")
   (command "_save" fjm1)
第三步:将原始文件关闭
   (command "_close" fjm0)   ;;关闭文件
第四步:打开另存文件,并激活文件,进行必要的图形操作
   (setq fjm1 "d:/CAD与数据开发/00BLOCK/电信井33.dwg")
   (vla-activate (vla-open (vla-get-documents (vlax-get-acad-object)) fjm1))
   .........

第五步:保存并关闭另存文件fjm1
   (command "_close" fjm1)   ;;关闭文件
   当我对图形进行了修改,而后进行关闭操作时,CAD都会提问:
    Really want to discard all changes to drawing? <N> Yes or No, please.
   而我竟然不能将这个参数加入到lisp命令中去,以在此处谢绝人机对话,也在此
   请教各位   (command "_close" fjm1)后面的参数应该如何填,才能保存修改?
第六步:重复第一步,转入循环处理

但当我将他们放入一个函数里面时,却发生了错误,
其一是,不能关闭原始文件
其二是,不能打开另存的文件,关闭CAD再打开另存文件,里面是空白(单独执行有内容)

;;打开并另存激活一个dwg
(vl-load-com)
(defun c:opendwg ( )
   (setq fjm0 "d:/CAD与数据开发/00BLOCK/电信井.dwg")
   (vla-activate (vla-open (vla-get-documents (vlax-get-acad-object)) fjm0))

   (setq fjm1 "d:/CAD与数据开发/00BLOCK/电信井33.dwg")
   (command "_save" fjm1)  ;;另存文件

   (command "_close" fjm0)   ;;关闭原始文件

   (setq fjm1 "d:/CAD与数据开发/00BLOCK/电信井33.dwg")
   (vla-activate (vla-open (vla-get-documents (vlax-get-acad-object)) fjm1))
    ; 打开另存文件,并激活文件
  )

请教各位上述的错误在哪里?如何改正?并且对上述第一到第六步的操作有不有更好的处理方式,比如在第二步即将另存的文件激活,进行操作之后,存盘关闭。然后将原始文件再度激活另存为另外一个新的文件,进入循环处理。
                          陈四清 chen4@py.gov.cn
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1个

财富等级: 恭喜发财

发表于 2004-11-25 14:01:57 | 显示全部楼层
肯定是不行的。
当执行第一步后,
当前文档已经变成新打开的文档了,
而这时你的下一步处理程序在新文档中并没有加载,所以就无法执行下去了。

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

使用道具 举报

 楼主| 发表于 2004-11-25 19:32:12 | 显示全部楼层
对VLX函数现在我还有些摸不到边,能否请二楼或其他的高手帮忙给编辑一下,供我学习。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 15:37 , Processed in 0.174455 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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