明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2416|回复: 3

[求助]关于Layout中的视图问题

[复制链接]
发表于 2003-9-19 16:50 | 显示全部楼层 |阅读模式
一个Layout中的PViewport对象是根据什么属性确定显示Model中的范围的?
简单点的 :矩形Viewport,他是如何对应到Model中的左下点和右上点的?
如何理解这种"抽象视图"与"实际视图"的关系?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2003-9-19 17:12 | 显示全部楼层
;; How can I get the coordinate relationship
;; between paper space and model space in a
;; specific viewport (while tilemode = 0)?
;; 这是一个非常有用的例子,看出它们的关系了吗??
;; 我以前也为找出它们的关系花了不少时间
(defun C:TEST (/ A W WDXF EA EN XP W10 W40 W41 W69 VCTRX VCTRY LPT RPT)
  (setvar "tilemode" 0)
  (command "_.PSPACE")
  (while (not A)
    (setq A (ssget ":s" '((0 . "VIEWPORT"))))
  )
  (setq W (ssname A 0))
  (setq WDXF (entget W))
  (setq        EA (assoc -3 (entget W '("ACAD")))
        EN (reverse (cdr (reverse (cdr (cddadr EA)))))
  )
  (setq XP (/ (cdr (assoc 41 WDXF)) (cdr (nth 4 EN))))
  (setq W10 (cdr (assoc 10 WDXF)))
  (setq W40 (/ (cdr (assoc 40 WDXF)) XP))
  (setq W41 (/ (cdr (assoc 41 WDXF)) XP))
  (setq W69 (cdr (assoc 69 WDXF)))
  (command "_.MSPACE")
  (command "_.cvport" W69)
  (command "_.ucs" "v")
  (setq VCTRX (car (getvar "viewctr")))
  (setq VCTRY (cadr (getvar "viewctr")))
  (setq LPT (list (- VCTRX (/ W40 2.0)) (- VCTRY (/ W41 2.0))))
  (setq RPT (list (+ VCTRX (/ W40 2.0)) (+ VCTRY (/ W41 2.0))))
  (command "_.rectang" LPT RPT)
  (princ)
)
 楼主| 发表于 2003-9-19 17:41 | 显示全部楼层
非常感谢!回家继续琢磨...8-)
 楼主| 发表于 2003-9-21 16:00 | 显示全部楼层
又翻了一遍"Materting AutoCAD Objects"这本书的相关内容,知道了Viewport对象的ViewCenter坐标点的DXF组码是12 (in DCS)
为了兼容以前版本的DXF ,依然继续提供xdata方式的访问方式,其实就是重复记录了一遍到xdata中.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 11:25 , Processed in 0.151484 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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