乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 99|回复: 8

[讨论]如何快速获得当前所有图元的左下角和右上角

[复制链接]

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-5-6 17:06:00 | 显示全部楼层 |阅读模式
与系统变量limmin和limmax无关
回复

使用道具 举报

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 2004-5-6 17:13:00 | 显示全部楼层
(defun C:BOUND (/ BLK_BOUND PT1 PT2)
         (setq BLK_BOUND (ACET-GEOM-SS-EXTENTS (ssget) t))
         (setq PT1 (car BLK_BOUND))
         (setq PT2 (cadr BLK_BOUND))
         (command "_.RECTANG" PT1 PT2)
)
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2004-5-6 17:18:00 | 显示全部楼层
(defun c:test(/ ss AX:GETBOUNDINGBOX n PT_LIST )
         (setq PT_LIST '())
         (setq SS (ssget "X"(list '(-4 . ""))))
         (defun AX:GETBOUNDINGBOX (ENT / LL UR pt1 pt2)
         (vla-getboundingbox (vlax-ename->vla-object ENT) 'LL 'UR)
         (mapcar 'vlax-safearray->list (list LL UR)))
         (setq N 0)
         (repeat (sslength SS)
                         (setq PT_LIST (append PT_LIST (list (AX:GETBOUNDINGBOX (ssname SS N)))))
                         (setq N (1+ N)))
         PT_LIST)
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2004-5-6 17:24:00 | 显示全部楼层
二樓龍龍仔您好
ACET-GEOM-SS-EXTENTS         這個是什麼涵數? 我這里用
Command: BOUND
Select objects: 1 found
Select objects:         ; error: no function definition: ACET-GEOM-SS-EXTENTS
回复

使用道具 举报

20

主题

872

帖子

10

银币

中流砥柱

Rank: 25

铜币
952
发表于 2004-5-6 18:01:00 | 显示全部楼层

ACET-GEOM-SS-EXTENTS 是expresstools 的函数,功能相对于下面的(test),不过龙龙仔 那个t参数是怎么解释的?[code]
  
(defun test ( / n e ll ur xlst ylst)
   (setq ss (ssget "x" '((0 . "~xline,~ray"))))
   (repeat (setq n (sslength ss))
       (setq e (ssname ss (setq n (1- n))))
       (vla-getboundingbox (vlax-ename->vla-object e) 'll 'ur)
       (mapcar '(lambda (x) (setq lst (cons (vlax-safearray->list x) lst))) (list ll ur))
   )
   (setq xlst (vl-sort (mapcar 'car lst) '"))) t))
        (setq PT1 (car BLK_BOUND))
        (setq PT2 (cadr BLK_BOUND))
                 (command "_.RECTANG" PT1 PT2)
)
怎样把PT1和PT2放在Userr系统变量里?
        Lisp我实在不懂
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-5-6 18:01:00 | 显示全部楼层
谢了
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-5-6 18:19:00 | 显示全部楼层
怎样把PT1和PT2放在Userr系统变量里?
        
樓上的 這個用來做什麼來的?
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2004-5-6 18:37:00 | 显示全部楼层
我在VBa里做好了
Public Sub test()
Dim ss As AcadSelectionSet
Dim i As AcadEntity
Set ss = ThisDrawing.ActiveSelectionSet
ss.Select acSelectionSetAll
ss(0).GetBoundingBox pmin, pmax
For Each i In ss
i.GetBoundingBox p1, p2
If p1(0)  pmax(0) Then pmax(0) = p2(0)
If p2(1) > pmax(1) Then pmax(1) = p2(1)
Next i
ThisDrawing.SendCommand "_.RECTANG " & pmin(0) & "," & pmin(1) & vbCr & pmax(0) & "," & pmax(1) & vbCr
End Sub
用龙斑竹的办法16240个实体大概用了8秒
我的程序用了2秒
我要的是快速
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-5-6 18:43:00 | 显示全部楼层
嘩. 真讓我大開眼界哦. 這麼快的速度.
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-16 11:22 , Processed in 3.127707 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表