找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 700|回复: 5

[求助] 新建布局再生成视口时出现Automation 错误-设置当前视口时出错

[复制链接]

已领礼包: 22个

财富等级: 恭喜发财

发表于 2021-7-24 16:00:14 | 显示全部楼层 |阅读模式

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

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

×
求教各位大佬,这个问题怎么解决?好象有个什么控制因素吧。程序大致如下:
1、新建布局
    (setq psn$ "工程地质纵断面")
    (vla-put-layoutcreateviewport (vla-get-display (vla-get-preferences *acad*)) :vlax-false)
    (if (null (cqh-lststrn (ax:ListLayouts) psn$)) (vl-cmdf "_.LAYOUT" "N" psn$))
    (vla-put-layoutcreateviewport (vla-get-display (vla-get-preferences *acad*)) :vlax-true)
    (setvar "ctab" psn$)
    (vla-regen *adoc* acAllViewports);好象也没作用
2、调用Hasan M. Asous的Viewport Creator程序
(defun c:NV (/ doc p1 p2 temp mp scl SC cd:DWG_LayoutsList res a b vpp vpdoc vp)
  (vl-load-com)
  (setq Doc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
  (setq p1 (getpoint "\Select objects to view:") p2 (getcorner p1))
  (if (< (car (trans p2 1 0)) (car (trans p1 1 0)))
                (setq tmp p1 p1 p2 p2  tmp)
                T
  )
  (setq mp (list (/ (+ (car p1) (car p2)) 2) (/ (+ (cadr p1) (cadr p2)) 2) 0.0))
  (setq sc (cond ((getint (strcat "\nWhat is Viewport Scale 1: <" (itoa (setq sc (cond (sc) (50)))) ">: "))) (sc)))
  (setq cd:DWG_LayoutsList
                (vlax-for % (vla-get-layouts Doc)
                        (setq res (cons (list (vla-get-name %) (vla-get-TabOrder %) %) res))
                )
  )
  (setvar "CTab" (caar (vl-sort cd:DWG_LayoutsList '(lambda (a b) (> (cadr a) (cadr b))))))
  (setq VPDoc (vla-get-PaperSpace doc))
  (setq VPp (vlax-3D-point (getpoint "\nSelect Point for Viewport")))
  (setq VP (vla-AddPViewport VPDoc VPp (/ (- (car p2) (car p1)) sc) (/ (- (cadr p2) (cadr p1)) sc)))
  (vla-display VP :vlax-true)
  (vla-put-mspace doc :vlax-true)
  (vla-put-activepviewport Doc VP)
  (vla-zoomcenter (vlax-get-acad-object) (vlax-3d-point mp) 1.0)
  (vl-cmdf "_.zoom" (strcat (RTOS (/ 1.0 SC)) "xp"))
  (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acActiveViewport)
  (vla-put-mspace doc :vlax-FALSE)
  (VLA-PUT-DisplayLocked VP :vlax-true)
)
说明:在CAD原有布局,用Hasan M. Asous程序生成视口没有问题,就是新建布局再调用程序,
就会出现“错误: Automation 错误。 设置当前视口时出错”。本人初学入门,还望各位大佬指教!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 22个

财富等级: 恭喜发财

 楼主| 发表于 2021-7-24 16:11:41 | 显示全部楼层
再说明一点:重新打开CAD,再调用创建视口程序也没问题。但新建布局即时调用创建视口程序,就会出错。同时,我发现创建的视口会出现在布局2中。不知道这里面还有哪个控制因素?请各位大佬指教一下!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 22个

财富等级: 恭喜发财

 楼主| 发表于 2021-7-24 16:36:28 | 显示全部楼层
又出现*** Error: Automation 错误。 调用方法 SetObjectId (接口 IAcadBaseObject) 失败 ***
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 22个

财富等级: 恭喜发财

 楼主| 发表于 2021-7-25 00:30:02 | 显示全部楼层
不知道是否我没说明清楚?高手对这个问题应该是清楚的,怎么没人回应啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 22个

财富等级: 恭喜发财

 楼主| 发表于 2021-7-26 13:17:18 | 显示全部楼层
哪位高手路过时,请帮忙指点一下!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-27 06:42 , Processed in 0.174817 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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