明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2033|回复: 5

[LISP]在lisp中如何打开一个dwg文件&操作!!!!在线等,急,谢谢!

[复制链接]
发表于 2005-9-13 09:12 | 显示全部楼层 |阅读模式

请问在lisp中如何打开一个dwg格式文件,
我虽然找到了方法,可是打开的不是同一个document下,
在程序中我对打开后的图形想要操作,但打开后不在一个document下就非常的苦恼了!
下面的程序是打开dwg文件

( setq dm_high -228.000 )
( setq title_name ( strcat "请选择标高为" dm_high "米的水平地质图位置" ))

(setq dwgname ( getfiled title_name "" "dwg" 0 ))
(setq dwgname ( strcat "AcadApplication.Documents.Open \" "dwgname "\"" ))

( vl-cmdf "vbastmt" dwgname)

这样打开了,但是下面的想操作就不是在一个图档下了,

( setq ss (ssget "X" ))
( setq pt1 ( list 1 1) )
( setq pt2 ( list 20000 20000 ))
(vl-cmdf "mirror" ss "" pt1 pt2 "Y")

上面的操作和打开的图件不是在一个图档下,
请问怎么样才能在有图件的图档下操作呢???
非常急谢谢!

发表于 2005-9-13 09:45 | 显示全部楼层

这样不行的,程序就是针对文件的,,,新打开文件进行操作,要使用ActiveX方法

发表于 2005-9-13 10:10 | 显示全部楼层
你可以参考一下“插入未打开的图形中的块”那篇文章。
 楼主| 发表于 2005-9-13 10:14 | 显示全部楼层

那么请问哪位有好的方法可以实现我的思路呢?

谢谢大家!

发表于 2005-9-13 21:25 | 显示全部楼层

跨图档操作还可以考虑VBA。特别是如果后面的处理比较复杂,而且已用lisp写好。这样的话你可以将后面的处理代码段独立出来成为lisp函数。然后用vba宏打开图档,再用SendCommand方法使lisp处理函数在该图档运行,处理完成后关闭图档,再处理下一个图档。

发表于 2005-9-14 08:30 | 显示全部楼层
VLA-OPEN可以打开
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-7 09:13 , Processed in 0.439253 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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