明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

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

怎么得到用ssget选择的物体的最边界点

  [复制链接]
发表于 2003-9-3 21:14:00 | 显示全部楼层
我對這個程序有上點見儀,我剛試了一下.我覺得這條程序可以再改進點.目前樓上的程序只能夠框住PLINE類型的.還不能處理spline 或者ARC  LINE 等.如果再改善這將是十分完美的程序.

多多努力,不進則退.
发表于 2003-9-3 23:26:00 | 显示全部楼层
如果块转动一个角度,能否得出这个转动的块的最大范围框? 我需要的不是vl中getbounding的wcs坐标系的,而是有角度的(与块的转动角度相同)
发表于 2003-9-4 07:24:00 | 显示全部楼层
你可以通过以下属性取得对象的旋转角度及插入点:
Rotation 属性
InsertionPoint 属性
把图块旋转回来,取得框后,再旋转回去,同时按照角度及点来取得旋转后的框的点坐标。
发表于 2003-9-5 13:13:00 | 显示全部楼层
;;使用ax:GetBoundingBox (car (entsel"\n选图块: ")))
;;MCCAD!方法有點土
(defun AX:GETBOUNDINGBOX (ENT / HOLDOSMODE LL UR INS ROT PT_LIST PT)
  (vl-load-com)
  (setq HOLDOSMODE (getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (command "_.UCS" "")
  (command "_.COPY" ENT "" "0,0" "@")
  (setq ENT (vlax-ename->vla-object (entlast)))
  (setq INS (vla-get-insertionpoint ENT))
  (setq ROT (vla-get-rotation ENT))
  (vla-rotate ENT INS (* -1 ROT))
  (vla-getboundingbox ENT 'LL 'UR)
  (setq PT_LIST (mapcar 'vlax-safearray->list (list LL UR)))
  (command "_.LINE"
           (setq INS (vlax-safearray->list (vlax-variant-value INS)))
           (car PT_LIST)
           ""
  )
  (command "_.ROTATE" (entlast) "" INS (/ (* 180 ROT) pi))
  (setq PT (list (cdr (assoc 11 (entget (entlast))))))
  (command "_.ERASE" (entlast) "")
  (command "_.LINE" INS (cadr PT_LIST) "")
  (command "_.ROTATE" (entlast) "" INS (/ (* 180 ROT) pi))
  (setq PT (append PT (list (cdr (assoc 11 (entget (entlast)))))))
  (command "_.ERASE" (entlast) "")
  (vla-delete ENT)
  (command "_.UCS" "")
  (setvar "OSMODE" HOLDOSMODE)
  PT
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 22:26 , Processed in 0.175014 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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