明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 843|回复: 2

[求助]请教高手,如何获取列表中最大和最小的两组数?

[复制链接]
发表于 2009-5-5 14:41:00 | 显示全部楼层 |阅读模式

((369052.0 -227979.0 0.0) (369052.0 -227530.0 0.0) (369052.0
-225859.0 0.0) (369052.0 -226059.0 0.0) (369052.0 -227029.0 0.0) (369052.0
-226059.0 0.0) (369052.0 -225499.0 0.0) (369052.0 -225679.0 0.0) (369052.0
-225859.0 0.0) (369052.0 -225679.0 0.0) (369052.0 -227280.0 0.0) (369052.0
-227029.0 0.0) (369052.0 -227530.0 0.0) (369052.0 -227280.0 0.0))

如何赋予:

PT1=(369052.0 -227979.0 0.0)

PT2=(369052.0 -227530.0 0.0)

((370329.0 -230385.0 0.0) (370539.0 -230385.0 0.0) (369943.0 -230385.0 0.0)
(370329.0 -230385.0 0.0) (369425.0 -230385.0 0.0) (369943.0 -230385.0 0.0)
(369021.0 -230385.0 0.0) (369425.0 -230385.0 0.0) (368442.0 -230385.0 0.0)
(369021.0 -230385.0 0.0) (367766.0 -230385.0 0.0) (368442.0 -230385.0 0.0)
(367196.0 -230385.0 0.0) (367766.0 -230385.0 0.0) (369052.0 -227979.0 0.0)
(369052.0 -227029.0 0.0) (369052.0 -225499.0 0.0) (369052.0 -227029.0 0.0))

如何赋予:

PT3=(370329.0 -230385.0 0.0)

PT4=(369052.0 -227029.0 0.0)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2009-5-5 16:46:00 | 显示全部楼层
;; [功能] 获取点集范围
;; [作者] 王咣生
;; [参数] ptlst---点列表
(defun c:tt (/ p lst)
  (while (setq p (getpoint "拾取点: ")) (if p (setq lst (cons p lst))))
  (apply 'command (cons "_.rectang" (lt:pts-getBoundingbox lst)))
)
(defun lt:pts-getBoundingbox (ptl)
  (list (apply 'mapcar (cons 'min ptl))
 (apply 'mapcar (cons 'max ptl))
  )
)
 楼主| 发表于 2009-5-6 10:43:00 | 显示全部楼层

其实我想要达到的是上图中的红色部分(第二道尺寸):

下面是相关的程序,但却不能完成附件中的标注.

(defun c:t1 ()
  (defun *error* (msg)
    (print msg)
    (print "\n检查标注是否都在一条线上或有重合?")
    (entdel (entlast))
    (setq *error* nil
   dim-dxf-lst
    nil
    )
  )
  (while (and
    (not (prompt "\n选择需要累加的标注:"))
    (setq dim-ss (ssget '((0 . "DIMENSION") (1 . ""))))
    (> (setq dim-ss-n (sslength dim-ss)) 1)
    (vl-cmdf "copy" (ssname dim-ss 0) "" '(0 0) '(0 0))
    (setq
      dim-dxf-14   (cdr (assoc 14 (entget (ssname dim-ss 0))))
      dim-dxf-10   (cdr (assoc 10 (entget (ssname dim-ss 0))))
      dim-dis-1410 (distance dim-dxf-14 dim-dxf-10)
      dim-ang-1410 (angle dim-dxf-14 dim-dxf-10)
      dim-dxf-10   (polar dim-dxf-10
     dim-ang-1410
     (* dim-dis-1410 (1- dim-ss-n))
     )
    )
  )
    (if (setq tmp (getpoint "\n指定尺寸标注位置:"))
      (setq dim-dxf-10 tmp)
    )
    (setq dim-dxf-lst nil)
    (repeat dim-ss-n
      (setq dim-dxf-lst
      (append
        (list
   (cdr
     (assoc
       13
       (entget (ssname dim-ss (setq dim-ss-n (1- dim-ss-n))))
     )
   )
   (cdr (assoc 14 (entget (ssname dim-ss dim-ss-n))))
        )
        dim-dxf-lst
      )
      )
    )
    (foreach m dim-dxf-lst
      (setq i 0)
      (foreach n dim-dxf-lst
 (if (equal m n)
   (if (> (setq i (1+ i)) 1)
     (setq dim-dxf-lst (vl-remove m dim-dxf-lst))
   )
 )
      )
    )
    (setq dim-ent (entget (entlast))
   dim-ent (subst (cons 13 (nth 0 dim-dxf-lst))
    (assoc 13 dim-ent)
    dim-ent
    )
   dim-ent (subst (cons 14 (nth 1 dim-dxf-lst))
    (assoc 14 dim-ent)
    dim-ent
    )
   dim-ent (subst (cons 10 dim-dxf-10) (assoc 10 dim-ent) dim-ent)
    )
    (entmod dim-ent)
  )
)

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-9-28 18:19 , Processed in 0.177246 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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