明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1325|回复: 4

在一个document中编写lisp程序,让另外一个document中运行某段代码,能实现吗?

[复制链接]
发表于 2007-5-16 09:26 | 显示全部楼层 |阅读模式
问题是这样产生的
打开AutoCAD程序后,自动有一个drawing.dwg文档,在这个文档中运行一段代码..
该代码如下
  1. ;;;right_var是我用前面代码已经正确赋值的字符串变量
  2. (setq opened_doc (vla-open (vla-get-documents (vlax-get-acad-object)) right_var))
  3.       (vla-activate opened_doc)
接下来,我想在这个打开的opened_doc中运行一段代码,比如说,想设置opened_doc中的userr1系统变量为0.5,怎么实现
 楼主| 发表于 2007-5-16 09:33 | 显示全部楼层
如果直接将代码写成
  1. (setq opened_doc (vla-open (vla-get-documents (vlax-get-acad-object)) (nth 0 lst_var)))
  2.       (vla-activate opened_doc)
  3. (setvar "userr1" 0.5)
则设置的系统变量是drawing1.dwg中的,新打开的文档userr1没有变化...
高手们能有什么提示吗

发表于 2007-5-17 14:49 | 显示全部楼层
(vla-setvariable  opened_doc "userr1" 0.5)
 楼主| 发表于 2007-5-17 22:55 | 显示全部楼层

哦,谢谢,完全用到面向对象的思路...

那么要是有个函数叫'fun1,想在opened_doc的空间中运行,该如何写

(vla-sendcommand  opened_doc  "(fun1  para1 para2)")

是不是啊

 楼主| 发表于 2007-5-18 23:17 | 显示全部楼层

我说的对吗

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

本版积分规则

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

GMT+8, 2024-5-19 03:45 , Processed in 0.268688 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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