Chuyển đến nội dung
Diễn đàn CADViet
enix

(Xin lisp) Sắp xếp text theo thứ tự ABC

Các bài được khuyến nghị

Trong trường hợp này chỉ có hình thì rất khó mần lisp. Bạn đưa bản vẽ lên để biết bạn sắp xếp theo hàng hay theo cột như thế nào?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Trong trường hợp này chỉ có hình thì rất khó mần lisp. Bạn đưa bản vẽ lên để biết bạn sắp xếp theo hàng hay theo cột như thế nào?

 

Vì sắp xếp theo hàng hay cột, khoảng cách ra sao đã có các lisp khác làm được rồi, em chỉ cần đổi vị trí giữa các text theo đúng thứ tự ABC thôi bác ơi.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Vì sắp xếp theo hàng hay cột, khoảng cách ra sao đã có các lisp khác làm được rồi, em chỉ cần đổi vị trí giữa các text theo đúng thứ tự ABC thôi bác ơi.

 

Vì sắp xếp theo hàng hay cột, khoảng cách ra sao đã có các lisp khác làm được rồi, em chỉ cần đổi vị trí giữa các text theo đúng thứ tự ABC thôi bác ơi.

Bạn không hiểu khái niệm sắp xếp theo thứ tự là thế nào rồi? Mà không gởi bản vẽ thì thôi. Còn như cái này đơn giản lắm.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn không hiểu khái niệm sắp xếp theo thứ tự là thế nào rồi? Mà không gởi bản vẽ thì thôi. Còn như cái này đơn giản lắm.

 

Bản vẽ em đơn giản chỉ các text vầy thôi nà bác, mà em muốn đưa các text ống 1xDN50 lên trên, rồi 2xDN50, ... để thống kê cho dễ đó mà bác.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

vậy là xếp theo chữ hay theo số ^^

Sắp theo thứ tự ABC là 0,1,2,...,A,B,C,...như sort by name của Windows vậy đó bác.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

:P cái này chắc đến mùa quít. không đơn giản như bạn nghĩ đâu.

Hãy đưa file lên như DoanVanHa nói đi, các text đó như thế nào, tiếng Việt hay tiếng Anh, ....

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tôi thấy tò mò với yêu cầu nên viết cho bạn.

Nhưng bạn yêu cầu mà cố chấp không chịu gởi file lên để mọi người test thì thấy hình như bạn hơi bảo thủ.

Bởi vì bạn đang đi nhờ mọi người, và bạn không không biết viết lisp sẽ có rất nhiều tình huống mà người viết không nghĩ đến.

Việc đưa file cad lên sẽ giúp người được bạn nhờ rất nhiều.

Hi vọng mình không làm phật lòng bạn... :D

 

(defun LM:ss->ent ( ss / i l )
(if ss
(repeat (setq i (sslength ss))
(setq l (cons (ssname ss (setq i (1- i))) l))
)
)
)
(defun dxf (e code) (cdr (assoc code (entget e))))
(defun SortLstFromLst ( a b c )
(defun f ( c d )
(apply (function mapcar)
(cons (function list)
(mapcar (function (lambda ( a ) (cdr (assoc a d)))) c)
)
)
)
(f c (apply (function mapcar) (cons (function list) (cons a B))))
)
(defun C:ttt()
(setq ss (ssget (list (cons 0 "TEXT"))))
(initget "C H")
(setq order (getkword (strcat "\nThu tu Cot/Hang[C/H]")))
(if ss
(progn
(setq lst (LM:ss->ent ss))
(setq lst_cont (mapcar '(lambda (x) (dxf x 1))
lst
)
)
(setq sx (vl-sort lst_cont '<))
(setq lst_pt (mapcar '(lambda (x) (dxf x 10))
lst
))
(if (= order "C")
(setq lst_pt_sx (vl-sort lst_pt
(function (lambda (e1 e2)
(> (cadr e1) (cadr e2)) ) ) )
)
(setq lst_pt_sx (vl-sort lst_pt
(function (lambda (e1 e2)
(< (car e1) (car e2)) ) ) )
)
)
)
(princ "Khong chon duoc text")
)
(setq i 0)
(setq lst_e_sx (car(SortLstFromLst lst_pt (list lst) lst_pt_sx)))
(repeat (length lst)
(setq
e (nth i lst_e_sx)
eg (entget e)
old (assoc 1 eg)
nd (nth i sx)
i (1+ i)
eg (subst (cons 1 nd) old eg)
)
(entmod eg)
)
)
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tôi thấy tò mò với yêu cầu nên viết cho bạn.

Nhưng bạn yêu cầu mà cố chấp không chịu gởi file lên để mọi người test thì thấy hình như bạn hơi bảo thủ.

Bởi vì bạn đang đi nhờ mọi người, và bạn không không biết viết lisp sẽ có rất nhiều tình huống mà người viết không nghĩ đến.

Việc đưa file cad lên sẽ giúp người được bạn nhờ rất nhiều.

Hi vọng mình không làm phật lòng bạn... :D

 

(defun LM:ss->ent ( ss / i l )

(if ss

(repeat (setq i (sslength ss))

(setq l (cons (ssname ss (setq i (1- i))) l))

)

)

)

(defun dxf (e code) (cdr (assoc code (entget e))))

(defun SortLstFromLst ( a b c )

(defun f ( c d )

(apply (function mapcar)

(cons (function list)

(mapcar (function (lambda ( a ) (cdr (assoc a d)))) c)

)

)

)

(f c (apply (function mapcar) (cons (function list) (cons a B))))

)

(defun C:ttt()

(setq ss (ssget (list (cons 0 "TEXT"))))

(initget "C H")

(setq order (getkword (strcat "\nThu tu Cot/Hang[C/H]")))

(if ss

(progn

(setq lst (LM:ss->ent ss))

(setq lst_cont (mapcar '(lambda (x) (dxf x 1))

lst

)

)

(setq sx (vl-sort lst_cont '<))

(setq lst_pt (mapcar '(lambda (x) (dxf x 10))

lst

))

(if (= order "C")

(setq lst_pt_sx (vl-sort lst_pt

(function (lambda (e1 e2)

(> (cadr e1) (cadr e2)) ) ) )

)

(setq lst_pt_sx (vl-sort lst_pt

(function (lambda (e1 e2)

(< (car e1) (car e2)) ) ) )

)

)

)

(princ "Khong chon duoc text")

)

(setq i 0)

(setq lst_e_sx (car(SortLstFromLst lst_pt (list lst) lst_pt_sx)))

(repeat (length lst)

(setq

e (nth i lst_e_sx)

eg (entget e)

old (assoc 1 eg)

nd (nth i sx)

i (1+ i)

eg (subst (cons 1 nd) old eg)

)

(entmod eg)

)

)

 

Thanks bác bác viết lisp đúng ý em rồi ^.^

Cái này ko phải em ko chịu up file lên hay giấu file gì mà đơn giản là file em chỉ có mấy dòng text, đính kèm thì ko lên, post sau em cũng đính kèm mà mất tiu.

Lần cuối cám ơn bác thêm lần nữa ^.^

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×