明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3471|回复: 10

vla-get-ActiveUCS函数取不出原有坐标系

[复制链接]
发表于 2012-3-23 09:04:32 | 显示全部楼层 |阅读模式
   这个是我在vlisp函数说明上复制粘贴下来,但在CAD上运行总是出现 错误: Automation 错误。 空对象 ID
   期待高手能给个说明!
(defun c:fl()
;;; 这个范例返回当前 UCS
;;; 接着设定新的UCS。
;;; 最后,将UCS恢复原来的设定值
  (VL-LOAD-COM)
  (setq AcadObject(vlax-get-acad-object)
        AcadDocument(vla-get-ActiveDocument AcadObject)
        mSpace(vla-get-ModelSpace AcadDocument)
  )
;;; 返回激活文件当前的 UCS
  (setq currUCS(vla-get-ActiveUCS AcadDocument))
  (princ "当前的UCS是 ")(princ (vla-get-name currUCS))(princ "  ActiveUCS范例\n")
;;; 建立 UCS 并将其设成激活
  (setq Origin(vlax-3d-point (list 0 0 0)))
  (setq Xaxispnt(vlax-3d-point (list 1 1 0 )))
  (setq Yaxispnt(vlax-3d-point (list -1 1 0)))
  (setq UCSSel(vla-get-UserCoordinateSystems AcadDocument))
  (setq newUCS(vla-add UCSSel origin Xaxispnt Yaxispnt "_TestUCS"))
  (vla-put-ActiveUCS AcadDocument newUCS)
  (princ "新的UCS是 ")(princ (vla-get-name newUCS))(princ "  ActiveUCS范例\n")
;;; 将 UCS 重设为原来的值
  (vla-put-ActiveUCS AcadDocument currUCS)
  (princ "UCS重设为 ")(princ (vla-get-name currUCS))(princ "  ActiveUCS范例\n")
  (princ)
)



该贴已经同步到 zdqwy19的微博
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-3-23 11:16:05 | 显示全部楼层
需要有ucs才有这个属性
 楼主| 发表于 2012-3-23 11:22:01 | 显示全部楼层
snddd2000 发表于 2012-3-23 11:16
需要有ucs才有这个属性

那么要一开始查看坐标系有没有办法。
发表于 2012-3-23 11:24:40 | 显示全部楼层
zdqwy19 发表于 2012-3-23 11:22
那么要一开始查看坐标系有没有办法。

(if  (tblnext "ucs" T) (......))
 楼主| 发表于 2012-3-23 12:44:50 | 显示全部楼层
snddd2000 发表于 2012-3-23 11:24
(if  (tblnext "ucs" T) (......))

我还是不太明白,能给个全的例子吗?谢谢。
 楼主| 发表于 2012-3-23 12:53:40 | 显示全部楼层
snddd2000 发表于 2012-3-23 11:24
(if  (tblnext "ucs" T) (......))

另外象世界坐标系和使用“工具””新建ucs“建立的坐标系使用vla-get-activeucs都无法提取,是这个道理吧!

点评

可以  发表于 2012-3-23 16:57
 楼主| 发表于 2012-3-23 17:22:56 | 显示全部楼层
zdqwy19 发表于 2012-3-23 12:53
另外象世界坐标系和使用“工具””新建ucs“建立的坐标系使用vla-get-activeucs都无法提取,是这个道理吧 ...

可以的话,你帮忙做了实例吧!我就是用他查询世界坐标系和使用“工具””新建坐标系”时出现上述错误,请多指教。谢谢!
 楼主| 发表于 2012-3-23 17:36:57 | 显示全部楼层
snddd2000 发表于 2012-3-23 11:24
(if  (tblnext "ucs" T) (......))

可以的话,你帮忙做了实例吧!我就是用他查询世界坐标系和使用“工具””新建坐标系”时出现上述错误,请多指教。谢谢!
发表于 2012-3-24 07:40:36 | 显示全部楼层
本帖最后由 snddd2000 于 2012-3-24 07:41 编辑
zdqwy19 发表于 2012-3-23 17:36
可以的话,你帮忙做了实例吧!我就是用他查询世界坐标系和使用“工具””新建坐标系”时出现上述错误,请 ...


世界坐标是必须有的,其余的ucs可以用tblnext来查询到。而且需要是已经命名的。
 楼主| 发表于 2012-3-24 09:01:52 | 显示全部楼层
snddd2000 发表于 2012-3-24 07:40
世界坐标是必须有的,其余的ucs可以用tblnext来查询到。而且需要是已经命名的。

那也就是说无法用vla-get-activexucs取出世界坐标系和用vla-get-activexucs强制把坐标系设为世界坐标系,只能用(command ”ucs” ”w”)了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-25 04:49 , Processed in 0.191321 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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