立即注册 登录
晓东CAD家园-论坛 返回首页

eachy的个人空间 http://bbs.xdcad.net/?14 [收藏] [复制] [分享] [RSS]

日志

排序设置

已有 171 次阅读2013-5-4 10:12 |个人分类:Lisp| Sort, autolisp

                                     

利用以前写的代码,写了几个排序设置函数

1 ea:Num->hz
调用格式:(Ea:num->hz string mod)
参    数:String - 数字字符串
          Mod    - T 中文数字,nil 大写中文

2 ybl-ent-sort
调用格式:(ybl-ent-sort lst mode key vx)
参数说明:
        1 mode 0 按行 1 按列
        2 key
             (mod = 0)    (mod = 1)
          1  Y降X升       X升Y降   (左上至右下)
          2  Y降X降       X降Y降   (右上至左下)
          3  Y升X降       X降Y升   (右下至左上)
          4  Y升X升       X升Y升   (左下至右上)
        3 vx 行(列)允许误差,为 nil 实取 0
        4 lst 表, 格式如下
          ((pt1 ent1) (pt2 ent2) ... (ptn entn))
          a pt 为 ent 的特征点, ent 可以为 entity 或 vla-object
            比如对文字排序,pt 可以使用文字的插入点
            
          b 当 pt 为实数时,vx 为行列最大及最小值的差值,此时 mode key 为任意值
            如一组数 (1 3 56 89 56 45 6 8 45 91 45 69 78 15 12 11) vx 取 10
            排序后为 ((1 3 6 8 11) (12 15) (45 45 45) (56 56) (69 78) (89 91))
            总表及子表均为由小到大排列
        
返 回 值: 表,子表为按要求排列的 行/列
说    明: 因为是 lisp 函数,本函数内部并不对数据的合法性进行检查,以提高程序的效率
          使用前确保各参数的的正确性
|;
3 Ea:SortList
调用格式:(ea:sortlist pl row smod num spa vx cn)
参数说明:
;; pl 排序表((pt1 obj1) (pt2 obj2) ... )
;; row  0 按行 1 按列
;; smod 排序方式
;;      1  Y降X升       X升Y降   (左上至右下)
;;      2  Y降X降       X降Y降   (右上至左下)
;;      3  Y升X降       X降Y升   (右下至左上)
;;      4  Y升X升       X升Y升   (左下至右上)
;; num  string 起始序号
;; spa  string 步距
;; vx   行精度
;; cn   0 数字 1 大写中文  2 中文
;; 返回值: (((num1 pt1 obj1) (num2 pt2 obj2) ..) (...))
4 Ea:SortInit
调用格式:(ea:sortinit pl key)
参数说明:pl - 实体表,((pt1 obj1) (pt2 obj2) ....)
          key - "s" or nil
                "s" 时显示排序对话框
          当 pl = nil key = nil 时返回表 (row smod num spa vx cn)
          当 pl = nil key = "s" 时调用对话框设置并返回表 (row smod num spa vx cn)
          当 pl 不为空,key = nil 时调用 (ea:SortList pl row smod num spa vx cn)


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

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

GMT+8, 2024-5-11 04:42 , Processed in 1.824120 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部