明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1567|回复: 2

[求助]:[0214]请问如何获取CAD绘图区范围的尺寸座标.

[复制链接]
发表于 2006-2-14 21:29:00 | 显示全部楼层 |阅读模式
[[求助]:[0214]请问如何获取CAD绘图区范围的尺寸座标.

小弟看了吴老师书有各范例
是取得绘图区范围的尺寸座标
但是在ucs画面下
却会出现问题,
请问该程序该怎样改良呢?
附上程序
(defun c:sys12()
(setq cp (trans (getvar "viewctr") 1 2))
(setq pt1 (trans (getvar "vsmin") 1 2))
(setq pt2 (trans (getvar "vsmax") 1 2))
(setq xscl (- (car pt2) (car pt1)))
(setq yscl (- (cadr pt2) (cadr pt1)))
(setq sh (getvar "viewsize"))
(setq sw (* sh (/ xscl yscl)))
(setq p1 (list (- (car cp) (* 0.5 sw)) (- (cadr cp) (* 0.5 sh))))
(setq p3 (list (+ (car cp) (* 0.5 sw)) (+ (cadr cp) (* 0.5 sh))))
(setq p2 (list (car p3) (cadr p1)))
(setq p4 (list (car p1) (cadr p3)))
(command "pline" p1 "w" 1 1 p2 p3 p4 "c")
(command "chprop" (entlast) "" "c" 1 "")
)

以上问题烦请各位帮忙解答一下
谢谢~
 楼主| 发表于 2006-2-14 23:27:00 | 显示全部楼层

我的问题在于
正常的座标系统,可以顺利定位做图区的两点
但在 ucs 时,则会出现问题

不知道这样解释清楚吗?

 

 

 

发表于 2006-2-15 10:35:00 | 显示全部楼层
(defun c:sys12 ()
  (COMMAND "UCS" "W")
  (setq cp (trans (getvar "viewctr") 1 2))
  (setq pt1 (trans (getvar "vsmin") 1 2))
  (setq pt2 (trans (getvar "vsmax") 1 2))
  (setq xscl (- (car pt2) (car pt1)))
  (setq yscl (- (cadr pt2) (cadr pt1)))
  (setq sh (getvar "viewsize"))
  (setq sw (* sh (/ xscl yscl)))
  (setq p1 (list (- (car cp) (* 0.5 sw)) (- (cadr cp) (* 0.5 sh))))
  (setq p3 (list (+ (car cp) (* 0.5 sw)) (+ (cadr cp) (* 0.5 sh))))
  (setq p2 (list (car p3) (cadr p1)))
  (setq p4 (list (car p1) (cadr p3)))
  (command "pline" p1 "w" 1 1 p2 p3 p4 "c")
  (command "chprop" (entlast) "" "c" 1 "")
  (COMMAND "UCS" "P")
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-22 05:14 , Processed in 0.168686 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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