找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 885|回复: 2

[他山之石] Order Entities

[复制链接]

已领礼包: 3199个

财富等级: 富可敌国

发表于 2015-11-30 14:05:12 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
;; OE (Order Entities)  -  Lee Mac
(defun LEEoe ( ent / cnt  enx new sbx sub )
    (setq cnt 1)
    ;(while
        (progn
                (setvar 'errno 0)
                ;(setq ent (car (entsel (strcat "\nSelect object " (itoa cnt) " <done>: "))))
                (cond
                        (   (= 7 (getvar 'errno))
                                (princ "\**sed, try again.")
                        )
                        (   (null ent)
                                nil
                        )
                        (   (= 4 (logand 4 (cdr (assoc 70 (tblsearch "layer" (cdr (assoc 8 (setq enx (entget ent)))))))))
                                (princ "\nSelected object is on a locked layer.")
                        )
                        (   (and
                                (setq new (entmakex enx))
                                (or (/= 1 (cdr (assoc 66 enx)))
                                        (progn
                                                (setq sub (entnext ent)
                                                        sbx (entget  sub)
                                                )
                                                (while (/= "SEQEND" (cdr (assoc 0 sbx)))
                                                        (entmake sbx)
                                                        (setq sub (entnext sub)
                                                                sbx (entget  sub)
                                                        )
                                                )
                                                (entmake sbx)
                                        )
                                )
                        )
                        
                        (entdel ent)
                        (redraw new 3)
                        (setq   cnt (1+ cnt))
                        
                        )
                        (   (princ "\nUnable to reorder selected object."))
                )
        )
        ;    ) ; while

    (princ)
)

; pline co-ords example
; By Alan H
(defun getcoords (ent)
        (vlax-safearray->list
                (vlax-variant-value
                        (vlax-get-property
                                (vlax-ename->vla-object ent)
                                "Coordinates"
                        )
                )
        )
)

(defun co-ords2xy ()
        ; convert now to a list of xy as co-ords are x y x y x y if 3d x y z x y z
        (setq len (length co-ords))
        (setq numb (/ len 2)) ; even and odd check required
        (setq I 0)
        (repeat numb
                (setq xy (list (nth i co-ords)(nth (+ I 1) co-ords) ))
                ; odd (setq xy (list (nth i co-ords)(nth (+ I 1) co-ords)(nth (+ I 2) co-ords) ))
                (setq co-ordsxy (cons xy co-ordsxy))
                (setq I (+ I 2))
        )
)

; program starts here

(defun c:OE( / ss x)
        (command "_pline")
        (while (= (getvar "cmdactive") 1 ) (command pause)
        )
        (setq co-ords (getcoords (entlast)))
        (co-ords2xy) ; list of 2d points ** pline
        (entdel (entlast))
        (setq ss (ssget "F" co-ordsxy))
        (setq x (sslength ss))
        (repeat (sslength ss)
                (setq ent (ssname ss (setq x ( - x 1))))
                (if (= (vla-get-ObjectName (setq obj (vlax-ename->vla-object ent))) "AcDbCircle")
                        (progn
                                (setq pt (vlax-safearray->list (vlax-variant-value (vla-get-center obj))) )
                                (setq ts (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE")))))
                                (if (zerop ts)
                                        (command "TEXT" pt "3.5" "0" (rtos x 2 0))
                                        (command "TEXT" pt "0" (rtos x 2 0))
                                )      
                        ) ; progn
                ) ; if
                (LEEoe ent)
               
                (princ "\n")
        )
        (command "_.regen")
)

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 264个

财富等级: 日进斗金

发表于 2015-11-30 15:56:16 来自手机 | 显示全部楼层
没看出来这个是调的什么顺序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

发表于 2015-11-30 22:40:39 | 显示全部楼层
能解释一下吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 12:19 , Processed in 0.367247 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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