明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7175|回复: 23

有没有类拟lsp生成一个边界框

  [复制链接]
发表于 2012-5-25 16:20:26 | 显示全部楼层 |阅读模式

请问下有没有类似lsp可以窗选左边的图生成一个边界矩形框.
谢谢。

本帖子中包含更多资源

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

x
发表于 2019-12-15 13:24:05 | 显示全部楼层
本帖最后由 296715530 于 2019-12-15 15:29 编辑

感谢版主
东拼西凑加了记忆功能,和外框指定图层,以及中途退出捕捉恢复



(defun c:wk (/ ss i l1 l2 ll ur os d)
  (defun *MYERR* (MSG)
(setvar "CMDECHO" CMD_OLD)
(setvar "OSMODE" OS_OLD)
(setq *ERROR* *OLDERR*)
(if (= MSG "完美退出。谢谢使用。")
     (princ (strcat "\\n>>>" MSG))
     (princ "\n>>>虽然中途退出了,对象捕捉已经被恢复。")
)
(princ)
    )
    (setq *OLDERR* *ERROR*
   *ERROR*  *MYERR*
   OS_OLD   (getvar "OSMODE")
   CMD_OLD  (getvar "CMDECHO")
    )
(setvar "CMDECHO" 0);_关闭命令提示
(Setq osmode_bak (getvar "osmode"));_记录捕捉
(Setvar "osmode" 0);_关闭捕捉

(if *Scale* (setq d (getreal (strcat  "\n偏距<" (rtos *Scale* 2 2) ">:") ) )  (setq d (getreal  "\n偏

距:")))
(if (null d) (setq d *Scale*) (setq *Scale*  d ))

(setq ss (ssget))
  (repeat (setq i (sslength ss))
    (vla-getboundingbox
      (vlax-ename->vla-object (ssname ss (setq i (1- i))))
      'll
      'ur
    )
    (setq l1 (cons (vlax-safearray->list ll) l1)
          l2 (cons (vlax-safearray->list ur) l2)
    )
  )
  (mapcar 'set
          (list 'll 'ur)
          (mapcar '(lambda (a b) (apply 'mapcar (cons a b)))
                  '(min max)
                  (list l1 l2)
          )
  )
  (command
    "rectang"
    (trans (polar ll (* pi 1.25) (setq d (sqrt (+ (* d d) (* d d)))))
           0
           1
    )
    (trans (polar ur (* pi 0.25) d) 0 1)
  )

(command "CHPROP" "L" "" "LA" "_3" "");指定图层
(Setvar "osmode" osmode_bak);_还原捕捉


(setvar "CMDECHO" 1);_打开命令提示


  (princ)
)

回复 支持 1 反对 0

使用道具 举报

发表于 2019-6-25 00:01:38 | 显示全部楼层
;【PF工具箱--自动边界盒】
(defun c:bjh (/ ss i l1 l2 ll ur os d)
   (setq os (getvar 'osmode))
   (PRINC "\n【PF工具箱--QQ交流群:214654218】--自动边界盒 ")(PRINC)  
   (setq d (getreal "\n偏距<5>"))
   (if (null d)
     (setq d 5)
   )
   (setq ss (ssget))
   (repeat (setq i (sslength ss))
     (vla-getboundingbox
       (vlax-ename->vla-object (ssname ss (setq i (1- i))))
       'll
       'ur
     )
     (setq l1 (cons (vlax-safearray->list ll) l1)
           l2 (cons (vlax-safearray->list ur) l2)
     )
   )
   (mapcar 'set
           (list 'll 'ur)
           (mapcar '(lambda (a b) (apply 'mapcar (cons a b)))
                   '(min max)
                   (list l1 l2)
           )
   )
   (command
     "rectang"
     (trans (polar ll (* pi 1.25) (setq d (sqrt (+ (* d d) (* d d)))))
            0
            1
     )
     (trans (polar ur (* pi 0.25) d) 0 1)
   )
   (setvar 'osmode os)
   (princ)
)
发表于 2012-5-25 17:49:58 | 显示全部楼层
本帖最后由 Gu_xl 于 2012-5-25 17:50 编辑

  1. (defun c:tt (/ ss i l1 l2 ll ur os d)
  2.   (setq os (getvar 'osmode))
  3.   (setvar 'osmode 0)
  4.   (setq d (getreal "\n偏距<10>"))
  5.   (if (null d)
  6.     (setq d 10)
  7.   )
  8.   (setq ss (ssget))
  9.   (repeat (setq i (sslength ss))
  10.     (vla-getboundingbox
  11.       (vlax-ename->vla-object (ssname ss (setq i (1- i))))
  12.       'll
  13.       'ur
  14.     )
  15.     (setq l1 (cons (vlax-safearray->list ll) l1)
  16.           l2 (cons (vlax-safearray->list ur) l2)
  17.     )
  18.   )
  19.   (mapcar 'set
  20.           (list 'll 'ur)
  21.           (mapcar '(lambda (a b) (apply 'mapcar (cons a b)))
  22.                   '(min max)
  23.                   (list l1 l2)
  24.           )
  25.   )
  26.   (command
  27.     "rectang"
  28.     (trans (polar ll (* pi 1.25) (setq d (sqrt (+ (* d d) (* d d)))))
  29.            0
  30.            1
  31.     )
  32.     (trans (polar ur (* pi 0.25) d) 0 1)
  33.   )
  34.   (setvar 'osmode os)
  35.   (princ)
  36. )

点评

用了一下 不错 但是有一个问题 就是如果我边框有角度的 就行了 它摆不了角度  发表于 2012-10-15 22:12

评分

参与人数 1明经币 +1 收起 理由
fcut2004 + 1 很给力!

查看全部评分

发表于 2012-5-25 18:07:07 | 显示全部楼层

  1. ;; 边界外框 伪源码 需要e派工具箱(XCAD)的支持:http://xyp1964.ys168.com
  2. (defun c:tt ()
  3.   (if (setq ss (ssget))
  4.     (xyp-rectang
  5.       (xyp-get-Pt2XY (xyp-get-9pt ss 1) -10 -10)
  6.       (xyp-get-Pt2XY (xyp-get-9pt ss 9) 10 10)
  7.     )
  8.   )
  9.   (princ)
  10. )
发表于 2012-5-25 19:54:51 | 显示全部楼层
版主的很好。。
 楼主| 发表于 2012-5-25 21:28:54 | 显示全部楼层
非常感谢二位楼版主,这问题终于解决了。谢谢你们。
发表于 2012-5-26 12:10:58 | 显示全部楼层
感谢二位楼版主分享程序!
发表于 2012-5-26 16:28:28 | 显示全部楼层
版主的 (mapcar 'set
20.          (list 'll 'ur)
21.          (mapcar '(lambda (a b) (apply 'mapcar (cons a b)))
22.                  '(min max)
23.                  (list l1 l2)
24.          )
25.  )

mapcar 用的甚是好啊!
发表于 2012-10-14 18:32:38 | 显示全部楼层
感谢版主分享!
发表于 2012-10-14 22:07:28 来自手机 | 显示全部楼层
这个我一直在找,谢谢
发表于 2012-11-12 14:03:11 | 显示全部楼层
学习!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 21:43 , Processed in 0.193204 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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