明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: congcong

大家有没有发现 GetBoundingBox 有时对spline求不出正确的结果。

  [复制链接]
 楼主| 发表于 2004-1-15 17:34:00 | 显示全部楼层
我对我的程序做了不少尝试,偶然发现如果将原来的splie进行offset操作后再进行运算可得接近正确答案的结果。如果去掉程序中的offset命令,程序出错的机会会高得多。
(defun AX:GETBOUNDINGBOX (ENT / LL UR)
  (vla-getboundingbox (vlax-ename->vla-object ENT) 'LL 'UR)
  (mapcar 'vlax-safearray->list (list LL UR))
)

;======================
(defun fangk(ss / js pt_list)
  (setq js 0  PT_LIST nil)
  (repeat (sslength ss)
    (setq PT_LIST (append PT_LIST (AX:GETBOUNDINGBOX (ssname ss js))))
    (setq js (1+ js))
  )
  (setq PT1 (TRANS (list (apply 'min (mapcar 'car  PT_LIST))
                         (apply 'min (mapcar 'cadr PT_LIST))
                          ) 0 1)
        PT2 (TRANS (list (apply 'max (mapcar 'car  PT_LIST))
                         (apply 'max (mapcar 'cadr PT_LIST))
                          ) 0 1)
  )
)

;======================

(defun c:test (/ ss pt1 pt2)
(setvar "osmode" 0)
(SETQ ss (SSGET '(( 0 . "line,circle,arc,LWPOLYLINE,SPLINE,ELLIPSE"))))
(vl-cmdf ".offset" 0.0001 ss "100000,100000" ""
            ".ERASE"  ss "")
(setq ss (ssget "_L"))          
(fangk ss)
(vl-cmdf ".rectang" pt1 pt2)
)
有时候将offset的值改大和改小也会影响程序计算的正确性。
很奇怪,为什么呢?
 楼主| 发表于 2004-1-15 17:36:00 | 显示全部楼层
里面的矩形是加了offset命令后算出来的,外面的是没有加offset命令算出来的。

本帖子中包含更多资源

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

x
发表于 2004-1-16 08:42:00 | 显示全部楼层
呵呵,应该多看看回帖啊,楼上几位对offset讨论过了,你就不用这么去尝试了,可以节约不少时间啊
 楼主| 发表于 2004-1-16 08:53:00 | 显示全部楼层
说的也是,在这里祝各位春节愉快 万事如意。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 12:42 , Processed in 0.134267 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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