找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1226|回复: 15

[求助] [求助]: 求助,关于图元排序

[复制链接]
发表于 2004-10-25 20:31:53 | 显示全部楼层 |阅读模式

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

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

×
求助,关于图元排序

  1. ;各位大侠帮帮忙,看看能否简化一下本程序,
  2. ;在不一一取得子表的情况下得到所需要的图元表
  3. ;以下是程序
  4. (defun c:test()
  5.   (setq n1 10 n2 45 n3 95 n4 115 n5 130 n6 145 n7 160 n8 180)
  6.   (setq p1(getpoint"\n请输入明细栏的第一角点:"))
  7.   (setq p2(getpoint"\n请输入明细栏的第二角点:"))
  8.   (setq x0 (if (< (car p1) (car p2)) (car p1) (car p2)));确定输入点坐标中最小的X坐标值
  9.   (setq x1 (+ x0 n1) x2 (+ x0 n2) x3 (+ x0 n3) x4 (+ x0 n4) x5 (+ x0 n5)
  10. x6 (+ x0 n6) x7 (+ x0 n7) x8 (+ x0 n8))
  11.   (setq ss (ssget "C" p1 p2 '((0 . "TEXT"))))
  12.   (SETQ SSL (SSLENGTH SS) N 0)
  13.   (setq el '()
  14. n  0
  15.   )
  16.   (while (< n ssl)
  17.     (setq e (ssname ss n))
  18.     (setq el (append el (list e)))
  19.     (setq n (+ n 1))
  20.   )
  21.   ;|(setq el (vl-sort el
  22.       '(lambda (e1 e2)
  23.          (< (cadr (assoc 10 (entget e1)))
  24.      (cadr (assoc 10 (entget e2)))
  25.          )
  26.        )
  27.     )
  28.     )将图元按X坐标排序
  29.   先前的一段代码,后来发现是多此一举|;
  30.   (setq en '() en1 '() en2 '() en3 '() en4 '() en5 '() en6 '() en7 '() en8 '() n 0)
  31.   (REPEAT SSL
  32.     (SETQ E (ENTGET (nth n el)))
  33.     (setq alist (textbox e))
  34.     (setq l (* 0.5 (abs (- (car (car alist)) (car (cadr alist))))));文字长度的一半
  35.     (setq pt (list (+ (car temp) l) (cadr temp) 0));文字的中点
  36.     (setq x (car pt));取得文字中点的X值,以便下一步中与栏线X坐标值进行比较,判断该文本中心点落在哪一列中
  37.     (formatmain);获取各列图元表的子程序
  38.     (SETQ N (+ N 1))
  39.     )
  40.   (setq en (list en1 en2 ……));需要的按列排序的表
  41.   (PRINC)
  42.   )
  43. (defun formatmain()
  44.   (if (and (> x x0) (< x x1))
  45.     (setq en1 (append en1 (list (nth n el))))
  46.     )
  47.   (if (and (> x x1) (< x x2))
  48.     (setq en2 (append en2 (list (nth n e2))))
  49.     )
  50.   ……
  51.   省略的部分指的是第三,四……列的文本图元名的表
  52. )

这样做可以达到要求,但如果列数修改的话就要修改程序,很麻烦

我想用MAPCAR函数应该可以在不一一取得子表的情况下得到所需要的图元表

我要的表是诸如 如下的:

((a b c) (d e f g)……)

其中的字母是图元名,如果第一列中有3个图元,则第一个子表中有3个元素,

如果第二列中有4个图元,则第二个子表中有4个元素

这些子表是按从左到右第一、二……列的顺序来排列的

用我上面的土办法是可以实现的,但如果有十几列,几十列的话,就很麻烦

操作性很差,所以请大家来帮帮忙看看


下面是图例
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-10-26 14:45:21 | 显示全部楼层
可直接使用使用ACET函数:
(acet-ss-sort ss 'getx)
(defun getx (ent)
  (car (cdr (assoc 10 ent)))
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-10-26 23:12:05 | 显示全部楼层
从你的图中看,用文字的插入值在线的X值之间更容易些,取出线端点(vlax-curve-getstartpoint  line) 构造一个表((x1 x2) (x2 x3) ....),然后取出文字对齐的 X 值,添加到表(((x1 x2) t11 t12 t13 ..) ((x2 x3) t21 t22 t23 ...) ...),最后只取出每个表的实体部分。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-27 09:28:54 | 显示全部楼层
最初由 swaywood 发布
[B]以前没用过这个函数,请指点一二 [/B]

如果安装了ET, 可直接调用acet函数.
或者这样, 稍繁琐些:
[php]
(defun c:test (/ ssl)
  (setq ss (ssget) n 0)
  (while (< n (sslength ss))
    (setq ssl (cons (ssname ss n) ssl))
    (setq n (1+ n))
  )
  (setq ssl (vl-sort ssl '(lambda (p1 p2)(< (car (cdr (assoc 10 (entget p1))))
                                    (car (cdr (assoc 10 (entget p2))))))))
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-27 18:06:25 | 显示全部楼层
多谢二位!
4楼你理解了我的意思,5楼可能没理解我的意思
我后来想到的办法是这样的,不知有没有简单一点的办法?

  1. (defun c:test (/ nlist p1 p2 x0        xlist x0 x1 x ss ssl el        m n e l        pt alist
  2.                en adlist pt2 pt3 ENS ENTS I J KDBL LEN NL P10 PT_LST SC SSC X X0)
  3.   (setq        nlist '(10 45 95 115 130 145 160 180)
  4.         adlist '(1 0 0 1 1 1 1 1)
  5.         nl    (length nlist)
  6.   )
  7.   (setq p1 (getpoint "\n请输入明细栏的第一角点:"))
  8.   (setq p2 (getpoint "\n请输入明细栏的第二角点:"))
  9.   (command "zoom" "w" p1 p2)
  10.   (setq        x0 (if (< (car p1) (car p2))
  11.              (car p1)
  12.              (car p2)
  13.            )
  14.   )                                        ;确定输入点坐标中最小的X坐标值
  15.   (setq        xlist (mapcar '(lambda (x)
  16.                          (+ x x0)
  17.                        )
  18.                       nlist
  19.               )
  20.   )
  21.   (setq ss (ssget "C" p1 p2 '((0 . "TEXT"))))
  22.   (SETQ        SSL (SSLENGTH SS)
  23.         N   0
  24.   )
  25.   (setq        el  '()
  26.         m   0
  27.         ens '()
  28.         i   0
  29.   )
  30.   (while (< n ssl)
  31.     (setq e (ssname ss n))
  32.     (setq el (append el (list e)))
  33.     (setq n (+ n 1))
  34.   )
  35.   (repeat nl
  36.     (setq x1 (nth m xlist)
  37.           n  0
  38.           en '()
  39.     )
  40.     (repeat ssl
  41.       (SETQ E (ENTGET (nth n el)))
  42.       (setq alist (textbox e))
  43.       (setq l (* 0.5 (abs (- (car (car alist)) (car (cadr alist))))))
  44.       (setq p10 (cdr (assoc 10 e)))
  45.                                         ;文字长度的一半
  46.       (setq pt (list (+ (car p10) l) (cadr p10) 0)) ;文字的中点
  47.       (setq x (car pt))                        ;取得文字中点的X值,以便下一步中与栏线X坐标值进行比较,判断该文本中心点落在哪一列中
  48.       (if (and (> x x0) (< x x1))
  49.         (setq en (append en (list (nth n el))))
  50.       )
  51.       (setq n (+ n 1))
  52.     )
  53.     (setq x0  x1
  54.           m   (+ m 1)
  55.           ens (append ens (list en))
  56.     )
  57.   )
  58.   (setq        x0 (if (< (car p1) (car p2))
  59.              (car p1)
  60.              (car p2)
  61.            )
  62.   )
  63.   (command "ucs" "w")
  64.   (repeat nl
  65.     (setq x1 (nth i xlist))
  66.     (if        (nth i ens)
  67.       (progn
  68.         (setq ssc (nth i ens)
  69.               j          0
  70.         )
  71.         (repeat        (length ssc)
  72.           (setq ents (entget (nth j ssc)))
  73.           (setq ents (subst (cons 1 (vl-string-trim " " (cdr (assoc 1 ents)))) (assoc 1 ents) ents))
  74.           (setq kdbl (cdr (assoc 41 ents)))
  75.           (setq pt2 (cdr (assoc 10 ents)))
  76.           (setq pt_lst (textbox ents))
  77.           (setq len (- (caadr pt_lst) (caar pt_lst)))
  78.           (if (= 0 (nth i adlist))
  79.             (progn
  80.               (setq pt2 (list (+ 1 x0) (cadr pt2) (last pt2)))
  81.               (setq ents (subst (cons 10 pt2) (assoc 10 ents) ents))
  82.               (setq ents (subst (cons 72 0) (assoc 72 ents) ents))
  83.             )
  84.             (progn
  85.                   (setq pt2 (list (/ (+ x1 x0) 2) (cadr pt2) (last pt2)))
  86.               (setq ents (subst (cons 11 pt2) (assoc 11 ents) ents))
  87.               (setq ents (subst (cons 72 1) (assoc 72 ents) ents))
  88.             )
  89.           )
  90.           (if (> len (ABS (- x1 x0)))
  91.             (progn
  92.               (setq kdbl
  93.                      (*        kdbl
  94.                         (/ (- (ABS (- x1 x0)) 1.2) (+ 2 len))
  95.                      )
  96.               )
  97.               (setq ents (subst (cons 41 kdbl) (assoc 41 ents) ents))
  98.             )
  99.           )
  100.           (entmod ents)
  101.           (setq j (1+ j))
  102.         )
  103.       )
  104.     )
  105.     (setq i (1+ i) x0 x1)
  106.   )
  107.   (command "ucs" "p")
  108. )
]
下面是例图
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-27 19:48:12 | 显示全部楼层
晕乎,有测试图没有?
出个歪点子,你可做一辅助pline,和文字平行,每列一个结点。
取得的文字 getclosestpointto 到pline。就知道是第几列了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-27 20:04:24 | 显示全部楼层
最初由 梦断江南 发布
[B]晕乎,有测试图没有?
出个歪点子,你可做一辅助pline,和文字平行,每列一个结点。
取得的文字 getclosestpointto 到pline。就知道是第几列了 [/B]


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

使用道具 举报

发表于 2004-10-27 22:20:33 | 显示全部楼层
哦~~,习惯了。我以为是程序呢,呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-27 23:42:39 | 显示全部楼层
楼主 没有说明程序的功能,是对齐文字还是修改内容,如果说出功能才好设计更优化的程序。下面的代码仅 对楼主提出的图元排序

  1. (defun c:test (/ nlist addlist p1 p2 x0 ss ssl e el)
  2.   (setq        nlist  '((0 10)
  3.                  (10 45)
  4.                  (45 95)
  5.                  (95 115)
  6.                  (115 130)
  7.                  (130 145)
  8.                  (145 160)
  9.                  (160 180)
  10.                 )
  11.         adlist '(1 0 0 1 1 1 1 1)
  12.   )
  13.   (if (and (setq p1 (getpoint "\n请输入明细栏的第一角点:"))
  14.            (setq p2 (getcorner p1 "\n请输入明细栏的第二角点:"))
  15.       )
  16.     (progn
  17.       ;(command "zoom" "w" p1 p2)
  18.       (setq x0 (min (car p1) (car p2))) ;_确定输入点坐标中最小的x坐标值
  19.       (setq ss (ssget "c" p1 p2 '((0 . "text"))))
  20.       (setq ssl (sslength ss))
  21.       (while (> ssl 0)
  22.         (setq e (ssname ss (setq ssl (1- ssl))))
  23.         (setq
  24.           el (cons (cons (- (cadr (assoc 10 (entget e))) x0) e)
  25.                    el
  26.              )
  27.         )
  28.       )
  29.       (setq el         (vl-sort el '(lambda (x1 x2) (< (car x1) (car x2))))
  30.             elst (mapcar 'list nlist)
  31.       )
  32.       (mapcar '(lambda (e0 / )
  33.                  (foreach i nlist
  34.                    (if
  35.                      (and (> (car e0) (car i))
  36.                           (< (car e0) (cadr i))
  37.                      )
  38.                       (setq elst
  39.                              (subst (append (assoc i elst) (list (cdr e0)))
  40.                                     (assoc i elst)
  41.                                     elst
  42.                              )
  43.                       )
  44.                    )
  45.                  )
  46.                )
  47.               el
  48.       )
  49.       (setq elst (mapcar 'cdr elst)) ;_ end setq
  50.     ) ;_ end progn
  51.   )
  52. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-10-28 00:05:50 | 显示全部楼层
你的方法不是很好,(不是说你的写程序的方法)

首先是不通用,格子有些变化就不行了.
其次,你也不会预先知道每一列的对齐方式.

其实写一下很简单,关键是解决问题的方法.

如果我写我会:
连续点列,结束时问左对齐还是中心对齐.
1知道哪一列很简单(ssget "f")
2再(ssget "C")这一列的文字
3根据对齐方式移动.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-28 18:27:27 | 显示全部楼层
多谢Free-Lancer,要的就是用mapcar,不过可能并不能按列建立子表,下面的是得到的图元表:
命令: (test1)

请输入明细栏的第一角点:
请输入明细栏的第二角点:zoom
指定窗口角点,输入比例因子 (nX 或 nXP),或
[全部(A)/中心点(C)/动态(D)/范围(E)/上一个(P)/比例(S)/窗口(W)] <实时>: w
指定第一个角点: 指定对角点:
<图元名: 7ef7b350>) <图元名: 7ef7b348>) <图元名: 7ef7b340>) <图元名: 7ef7b338>)
<图元名: 7ef7b330>) <图元名: 7ef7b328>) <图元名: 7ef7b320>) <图元名: 7ef7b318>)
<图元名: 7ef7b310>) <图元名: 7ef7b308>) <图元名: 7ef7b300>) <图元名: 7ef7b2f8>)
<图元名: 7ef7b2f0>) <图元名: 7ef7b2e8>) <图元名: 7ef7b2e0>) <图元名: 7ef7b2d8>)
<图元名: 7ef7b2d0>) <图元名: 7ef7b2c8>) <图元名: 7ef7b2c0>) <图元名: 7ef7b2b8>)
<图元名: 7ef7b2b0>) <图元名: 7ef7b2a8>) <图元名: 7ef7b2a0>) <图元名: 7ef7b2a0>)
<图元名: 7ef7b2a0>)
((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((160 180) <图元名: 7ef7b610>) <图元名: 7ef7b608>) <图元名: 7ef7b600>)
<图元名: 7ef7b5f8>) <图元名: 7ef7b5f0>) <图元名: 7ef7b5e8>) <图元名: 7ef7b5e0>)
<图元名: 7ef7b5d8>) <图元名: 7ef7b5d0>) <图元名: 7ef7b528>) <图元名: 7ef7b520>)
<图元名: 7ef7b518>) <图元名: 7ef7b510>) <图元名: 7ef7b508>) <图元名: 7ef7b500>)
<图元名: 7ef7b4f8>) <图元名: 7ef7b4f0>) <图元名: 7ef7b4e8>) <图元名: 7ef7b4d8>)
<图元名: 7ef7b4d0>) <图元名: 7ef7b4c8>) <图元名: 7ef7b4c0>) <图元名: 7ef7b4b8>)
<图元名: 7ef7b4b0>) <图元名: 7ef7b4a8>) <图元名: 7ef7b4a0>) <图元名: 7ef7b498>)
<图元名: 7ef7b490>) <图元名: 7ef7b488>) <图元名: 7ef7b480>) <图元名: 7ef7b478>)
<图元名: 7ef7b470>) <图元名: 7ef7b468>) <图元名: 7ef7b460>) <图元名: 7ef7b458>)
<图元名: 7ef7b450>) <图元名: 7ef7b448>) <图元名: 7ef7b440>) <图元名: 7ef7b438>)
<图元名: 7ef7b430>) <图元名: 7ef7b428>) <图元名: 7ef7b420>) <图元名: 7ef7b418>)
<图元名: 7ef7b410>) <图元名: 7ef7b408>) <图元名: 7ef7b400>) <图元名: 7ef7b3b8>)
<图元名: 7ef7b3b0>) <图元名: 7ef7b3a8>) <图元名: 7ef7b3a0>) <图元名: 7ef7b398>)
<图元名: 7ef7b390>) <图元名: 7ef7b388>) <图元名: 7ef7b380>) <图元名: 7ef7b378>)
<图元名: 7ef7b370>) <图元名: 7ef7b368>) <图元名: 7ef7b360>) <图元名: 7ef7b358>)
<图元名: 7ef7b350>) <图元名: 7ef7b348>) <图元名: 7ef7b340>) <图元名: 7ef7b338>)
<图元名: 7ef7b330>) <图元名: 7ef7b328>) <图元名: 7ef7b320>) <图元名: 7ef7b318>)
<图元名: 7ef7b310>) <图元名: 7ef7b308>) <图元名: 7ef7b300>) <图元名: 7ef7b2f8>)
<图元名: 7ef7b2f0>) <图元名: 7ef7b2e8>) <图元名: 7ef7b2e0>) <图元名: 7ef7b2d8>)
<图元名: 7ef7b2d0>) <图元名: 7ef7b2c8>) <图元名: 7ef7b2c0>) <图元名: 7ef7b2b8>)
<图元名: 7ef7b2b0>) <图元名: 7ef7b2a8>) <图元名: 7ef7b2a0>) <图元名: 7ef7b2a0>)
<图元名: 7ef7b2a0>)))7ef7b478>) <图元名: 7ef7b470>) <图元名: 7ef7b468>)
<图元名: 7ef7b460>) <图元名: 7ef7b458>) <图元名: 7ef7b450>) <图元名: 7ef7b448>)
<图元名: 7ef7b440>) <图元名: 7ef7b438>) <图元名: 7ef7b430>) <图元名: 7ef7b428>)
<图元名: 7ef7b420>) <图元名: 7ef7b418>) <图元名: 7ef7b410>) <图元名: 7ef7b408>)
<图元名: 7ef7b400>) <图元名: 7ef7b3b8>) <图元名: 7ef7b3b0>) <图元名: 7ef7b3a8>)
<图元名: 7ef7b3a0>) <图元名: 7ef7b398>) <图元名: 7ef7b390>) <图元名: 7ef7b388>)
<图元名: 7ef7b380>) <图元名: 7ef7b378>) <图元名: 7ef7b370>) <图元名: 7ef7b368>)
<图元名: 7ef7b360>) <图元名: 7ef7b358>) <图元名: 7ef7b350>) <图元名: 7ef7b348>)
<图元名: 7ef7b340>) <图元名: 7ef7b338>) <图元名: 7ef7b330>) <图元名: 7ef7b328>)
<图元名: 7ef7b320>) <图元名: 7ef7b318>) <图元名: 7ef7b310>) <图元名: 7ef7b308>)
<图元名: 7ef7b300>) <图元名: 7ef7b2f8>) <图元名: 7ef7b2f0>) <图元名: 7ef7b2e8>)
<图元名: 7ef7b2e0>) <图元名: 7ef7b2d8>) <图元名: 7ef7b2d0>) <图元名: 7ef7b2c8>)
<图元名: 7ef7b2c0>) <图元名: 7ef7b2b8>) <图元名: 7ef7b2b0>) <图元名: 7ef7b2a8>)
<图元名: 7ef7b2a0>) <图元名: 7ef7b2a0>) <图元名: 7ef7b2a0>)
((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((145 160) <图元名:
7ef7b4a0>) <图元名: 7ef7b498>) <图元名: 7ef7b490>) <图元名: 7ef7b488>) <图元名:
7ef7b480>) <图元名: 7ef7b478>) <图元名: 7ef7b470>) <图元名: 7ef7b468>) <图元名:
7ef7b460>) <图元名: 7ef7b458>) <图元名: 7ef7b450>) <图元名: 7ef7b448>) <图元名:
7ef7b440>) <图元名: 7ef7b438>) <图元名: 7ef7b430>) <图元名: 7ef7b428>) <图元名:
7ef7b420>) <图元名: 7ef7b418>) <图元名: 7ef7b410>) <图元名: 7ef7b408>) <图元名:
7ef7b400>) <图元名: 7ef7b3b8>) <图元名: 7ef7b3b0>) <图元名: 7ef7b3a8>) <图元名:
7ef7b3a0>) <图元名: 7ef7b398>) <图元名: 7ef7b390>) <图元名: 7ef7b388>) <图元名:
7ef7b380>) <图元名: 7ef7b378>) <图元名: 7ef7b370>) <图元名: 7ef7b368>) <图元名:
7ef7b360>) <图元名: 7ef7b358>)

斑竹的想法启发了我,不过想一想还是不太妥
主要是有以下几个问题:
1.(ssget "f")会漏选,即使文字在“栏线(f)”上也会有时选不到,何况文字有长有短,而且初始时不一定是齐整的
2.(ssget "c")可能会选到下一列中稍微伸入当前列的文字
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-28 18:34:50 | 显示全部楼层
最初由 swaywood 发布
[B]多谢Free-Lancer,要的就是用mapcar

斑竹的想法启发了我,不过想一想还是不太妥
主要是有以下几个问题:
1.(ssget "f")会漏选,即使文字在“栏线(f)”上也会有时选不到,何况文字有长有短,而且初始时不一定是... [/B]

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

使用道具 举报

发表于 2004-10-28 19:30:42 | 显示全部楼层
主要是有以下几个问题:
1.(ssget "f")会漏选,即使文字在“栏线(f)”上也会有时选不到,何况文字有长有短,而且初始时不一定是齐整的
2.(ssget "c")可能会选到下一列中稍微伸入当前列的文字

针对第二条:没有规矩不成方圆,稍微伸入当前列的文字算前面那列还是后面那列,你可以对我们说清楚,你能对cpu说清楚么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 13:49 , Processed in 0.204254 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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