Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
10 replies to this topic

#1 enix

enix

    biết vẽ ellipse

  • Members
  • PipPip
  • 56 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 12 September 2014 - 12:17 PM

Hiện giờ em đang cần lisp sắp xếp các dtext theo thứ tự ABC, bác nào giúp em với em cảm ơn.

Ví dụ:

2014b63a8692-6fa7-4f19-b177-7a37b4ed4bb3


  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5448 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 12 September 2014 - 01:34 PM

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?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 enix

enix

    biết vẽ ellipse

  • Members
  • PipPip
  • 56 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 12 September 2014 - 01:40 PM

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.


  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5448 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 12 September 2014 - 01:44 PM

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.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#5 enix

enix

    biết vẽ ellipse

  • Members
  • PipPip
  • 56 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 12 September 2014 - 02:20 PM

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.


  • 0

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5448 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 12 September 2014 - 02:38 PM

Thanks!


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#7 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 12 September 2014 - 03:28 PM

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


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#8 enix

enix

    biết vẽ ellipse

  • Members
  • PipPip
  • 56 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 12 September 2014 - 04:34 PM

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.


  • 0

#9 tien2005

tien2005

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 257 Bài viết
Điểm đánh giá: 94 (tàm tạm)

Đã gửi 12 September 2014 - 05:13 PM

: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, ....


  • 0

#10 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 107 (tàm tạm)

Đã gửi 13 September 2014 - 12:25 PM

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)
)
)


  • 1

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#11 enix

enix

    biết vẽ ellipse

  • Members
  • PipPip
  • 56 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 18 September 2014 - 01:15 PM

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 ^.^


  • 0