明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

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

块旋转后,如何获得未旋转前的外围尺寸(外围框)?

  [复制链接]
发表于 2011-7-27 13:13:42 | 显示全部楼层
本帖最后由 highflybird 于 2011-7-27 19:43 编辑

修改了一下代码,使得能适用于块中有属性的。
部分代码如下:

  1. ;;;获取某个旋转图块的原始包围盒
  2. (defun C:test (/ Sel doc blk mat i lst ent dxf bkname BoxPts pts MinPt MaxPt)
  3.   (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  4.   (setq blk (vla-get-blocks doc))
  5.   (setq i 0)
  6.   (setq lst nil)
  7.   (if (setq sel (ssget '((0 . "INSERT"))))
  8.     (repeat (sslength sel)
  9.       (setq ent (ssname sel i))
  10.       (setq dxf (entget ent))
  11.       (setq bkname (cdr (assoc 2 dxf)))
  12.       ;;The first to get the boundingbox of a Block Definition
  13.       (if (not (setq BoxPts (cdr (assoc bkname lst))))
  14. (setq BoxPts (blkbox blk bkname)
  15.        lst    (cons (cons bkName BoxPts) lst)
  16. )
  17.       )
  18.       ;; if the Insert has attribute entities
  19.       (if (= (cdr (assoc 66 dxf)) 1)
  20. (setq BoxPts (AttBox ent BoxPts))
  21.       )
  22.       (if BoxPts
  23. (progn
  24.    (setq MinPt (apply 'mapcar (cons 'min BoxPts)))
  25.    (setq MaxPt (apply 'mapcar (cons 'max BoxPts)))
  26.    (setq BoxPts (list MinPt
  27.         (list (car MinPt) (cadr MaxPt))
  28.         MaxPt
  29.         (list (car MaxPt) (cadr MinPt))
  30.          )
  31.    )
  32.    (setq mat (RefGeom ent))
  33.    (setq pts (mapcar
  34.         (function (lambda (pt)
  35.       (mapcar '+ (mxv (car mat) pt) (cadr mat))
  36.     )
  37.         )
  38.         BoxPts
  39.       )
  40.    )
  41.    (Make3dPoly pts)
  42. )
  43.       )
  44.       (setq i (1+ i))
  45.     )
  46.   )
  47.   (princ)
  48. )



本帖子中包含更多资源

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

x
发表于 2011-7-27 13:30:11 | 显示全部楼层
回复 highflybird 的帖子

不错,不错!~~
建议包围盒为整体,不要是分开的四条线段!~~
发表于 2011-7-27 16:27:48 | 显示全部楼层
奇怪,我测试怎么提示这个:; 错误: no function definition: BLKBOX
发表于 2011-7-27 16:28:37 | 显示全部楼层
没找到 BLKBOX函数?还是我的其他程序冲突了?
发表于 2011-7-27 16:50:47 | 显示全部楼层
感谢highflybird分享 <谢谢!>
发表于 2011-7-27 17:15:10 | 显示全部楼层
回复 仲文玉 的帖子

请下载最后一个lisp文件.
发表于 2011-7-27 19:38:28 | 显示全部楼层
回复 highflybird 的帖子

几何方面高飞鸟几乎无人能敌
发表于 2011-7-27 23:12:27 | 显示全部楼层
xiaxiang 发表于 2011-7-27 19:38
回复 highflybird 的帖子

几何方面高飞鸟几乎无人能敌

你太过奖我了。这个论坛高手多得很。你到几何算法版块中去看看,就知道山外有山天外有天了。
 楼主| 发表于 2011-7-29 12:54:54 | 显示全部楼层
回复 highflybird 的帖子

很感谢,我就卡在几何算法上。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-10 00:12 , Processed in 0.237612 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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