Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
bach1212

[Nhờ chỉnh sửa] Lưu giữ thông số nhập vào trong lisp

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

Cho mình hỏi, trong lisp này, muốn lưu giữ thông số: khoảng cách "d" giữa các text và bên căn chỉnh text trái hay phải "T or P" cho các lần thực hiện lisp tiếp sau thì cần chỉnh sửa như thế nào để không phải gõ lại ạ:

http://www.cadviet.com/upfiles/3/40304_dan_text__dk.lsp

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=57792&st=20
 
;;;;;;Sap xep cac text dung theo khoang cach ngang nhap vao. Co hai lua chon: sap xep tu trai qua phai va nguoc lai
 
 
(defun c:dk (/ oldos p d enlst i ht cn cd ort)
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(setq ;;;;; p (getpoint "\n Chon diem chuan ")
        d (getreal "\n Nhap khoang cach giua cac text: ") )
(setq ort (getstring "\n Text co dinh nam ben Trai hay Phai <T or P>: "))
(prompt "\n Chon nhom text can sap xep")
(setq  enlst (acet-ss-to-list (ssget (list (cons 0 "text") ))))
(while enlst
   	(command "undo" "be")
   	(setq i 0)
   	(setq enlst (vl-sort enlst '(lambda (x y) (< (caar (acet-ent-geomextents x)) (caar (acet-ent-geomextents y))))))
   	(if (= (strcase ort) "T")
   	(setq p (if (or (/= (cdr (assoc 72 (entget (car enlst)))) 0) (/= (cdr (assoc 73 (entget (car enlst)))) 0))
                        (cdr (assoc 11 (entget (car enlst)))) (cdr (assoc 10 (entget (car enlst))))  )
       		cn (cdr (assoc 72 (entget (car enlst))))
       		cd (cdr (assoc 73 (entget (car enlst))))
   	)
   	(setq p (if (or (/= (cdr (assoc 72 (entget (last enlst)))) 0) (/= (cdr (assoc 73 (entget (last enlst)))) 0))
                        (cdr (assoc 11 (entget (last enlst)))) (cdr (assoc 10 (entget (last enlst))))  )
       		cn (cdr (assoc 72 (entget (last enlst))))
       		cd (cdr (assoc 73 (entget (last enlst))))
               enlst (reverse enlst)
   	)
   	)
   	(foreach en enlst
            (setq encode (entget en)
                    ht (cdr (assoc 40 encode))                  
                    encode (subst (cons 72 cn) (assoc 72 encode) encode)
                    encode (subst (cons 73 cd) (assoc 73 encode) encode)                  
     		)
     		(if (= (strcase ort) "T")
         		(setq  encode (subst (cons 11 (list (+ (car p)  (* i (+ d ht))) (caddr (assoc 11 encode)))) (assoc 11 encode) encode))
         		(setq  encode (subst (cons 11 (list (- (car p)  (* i (+ d ht))) (caddr (assoc 11 encode)))) (assoc 11 encode) encode))
     		)
     		(entmod encode)
     		(setq  i (1+ i))
        )
   	;;; (setq ans (getstring "\n Ban muon tiep tuc chinh text <Y or N> : "))
   	;;; (if (= (strcase ans) "Y")
   	;;; 	(progn
         		(prompt "\n Hay chon nhom text can sap xep tiep theo")
         		(setq enlst (acet-ss-to-list (ssget (list (cons 0 "text")))))
   	;;; 	)
   	;;; 	(setq enlst nil)
   	;;; )
        (command "undo" "e")
)
(setvar "osmode" oldos)
 
(princ)
)            


 


 

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

Cho mình hỏi, trong lisp này, muốn lưu giữ thông số: khoảng cách "d" giữa các text và bên căn chỉnh text trái hay phải "T or P" cho các lần thực hiện lisp tiếp sau thì cần chỉnh sửa như thế nào để không phải gõ lại ạ:

http://www.cadviet.com/upfiles/3/40304_dan_text__dk.lsp

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=57792&st=20
 
;;;;;;Sap xep cac text dung theo khoang cach ngang nhap vao. Co hai lua chon: sap xep tu trai qua phai va nguoc lai
 
 
(defun c:dk (/ oldos p d enlst i ht cn cd ort)
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(setq ;;;;; p (getpoint "\n Chon diem chuan ")
        d (getreal "\n Nhap khoang cach giua cac text: ") )
(setq ort (getstring "\n Text co dinh nam ben Trai hay Phai <T or P>: "))
(prompt "\n Chon nhom text can sap xep")
(setq  enlst (acet-ss-to-list (ssget (list (cons 0 "text") ))))
(while enlst
   	(command "undo" "be")
   	(setq i 0)
   	(setq enlst (vl-sort enlst '(lambda (x y) (< (caar (acet-ent-geomextents x)) (caar (acet-ent-geomextents y))))))
   	(if (= (strcase ort) "T")
   	(setq p (if (or (/= (cdr (assoc 72 (entget (car enlst)))) 0) (/= (cdr (assoc 73 (entget (car enlst)))) 0))
                        (cdr (assoc 11 (entget (car enlst)))) (cdr (assoc 10 (entget (car enlst))))  )
       		cn (cdr (assoc 72 (entget (car enlst))))
       		cd (cdr (assoc 73 (entget (car enlst))))
   	)
   	(setq p (if (or (/= (cdr (assoc 72 (entget (last enlst)))) 0) (/= (cdr (assoc 73 (entget (last enlst)))) 0))
                        (cdr (assoc 11 (entget (last enlst)))) (cdr (assoc 10 (entget (last enlst))))  )
       		cn (cdr (assoc 72 (entget (last enlst))))
       		cd (cdr (assoc 73 (entget (last enlst))))
               enlst (reverse enlst)
   	)
   	)
   	(foreach en enlst
            (setq encode (entget en)
                    ht (cdr (assoc 40 encode))                  
                    encode (subst (cons 72 cn) (assoc 72 encode) encode)
                    encode (subst (cons 73 cd) (assoc 73 encode) encode)                  
     		)
     		(if (= (strcase ort) "T")
         		(setq  encode (subst (cons 11 (list (+ (car p)  (* i (+ d ht))) (caddr (assoc 11 encode)))) (assoc 11 encode) encode))
         		(setq  encode (subst (cons 11 (list (- (car p)  (* i (+ d ht))) (caddr (assoc 11 encode)))) (assoc 11 encode) encode))
     		)
     		(entmod encode)
     		(setq  i (1+ i))
        )
   	;;; (setq ans (getstring "\n Ban muon tiep tuc chinh text <Y or N> : "))
   	;;; (if (= (strcase ans) "Y")
   	;;; 	(progn
         		(prompt "\n Hay chon nhom text can sap xep tiep theo")
         		(setq enlst (acet-ss-to-list (ssget (list (cons 0 "text")))))
   	;;; 	)
   	;;; 	(setq enlst nil)
   	;;; )
        (command "undo" "e")
)
(setvar "osmode" oldos)
 
(princ)
)            


 

 

 

Hề hề hề,

Hãy thử làm như sau:

1/- Xóa bỏ các biến d và ort khỏi danh sách các biến cục bộ được liệt kê ở đầu lisp.

2/- Bổ sung (if (not d) và trước dòng code (setq d ....) rồi thêm một ngoặc đóng vào cuối dòng code này/

3/- Làm như 2 đối với dòng code (setq ort ....)

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

hề hề, cám ơn bác phamthanhbinh. Làm như bác hướng dẫn, các lần sau đã ko cần nhập lại khoảng cách "d" và bên trái hay phải nữa.

Tuy nhiên, nếu cần phải thay đổi lại thông số nhập vào thì sao ạ?

E mún là nó chỉ lưu giữ thông số nhập vào, vẫn hiện lên dòng nhắc.( Để nếu có chỉnh sửa thì nhập lại thông số đầu vào). Theo hướng dẫn của bác thì hiện tại là đang mất hẳn dòng nhắc rùi ự.

http://www.cadviet.com/upfiles/3/40304_dan_text__dk_1.lsp

Bản vẽ để bác check giùm ạ:

http://www.cadviet.com/upfiles/3/40304_in_tdn.rar

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

hề hề, cám ơn bác phamthanhbinh. Làm như bác hướng dẫn, các lần sau đã ko cần nhập lại khoảng cách "d" và bên trái hay phải nữa.

Tuy nhiên, nếu cần phải thay đổi lại thông số nhập vào thì sao ạ?

E mún là nó chỉ lưu giữ thông số nhập vào, vẫn hiện lên dòng nhắc.( Để nếu có chỉnh sửa thì nhập lại thông số đầu vào). Theo hướng dẫn của bác thì hiện tại là đang mất hẳn dòng nhắc rùi ự.

http://www.cadviet.com/upfiles/3/40304_dan_text__dk_1.lsp

Bản vẽ để bác check giùm ạ:

http://www.cadviet.com/upfiles/3/40304_in_tdn.rar

Hề hề hề,'

Nếu muốn vậy hãy đặt thêm biếp phụ.

(setq d1 (getreal "\n ....))

(if d1 (setq d d1))

Tương tự với biến ort nhưng lưu ý giá trị trả về của hàm (gestring ....) khác với hàm (getreal ...) khi nhấn enter mà không nhập dữ liệu gì.

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

lưu giữ được giá trị d, nhưng ko lưu được bên trái hay phải bác ạ. (lặp lại lisp thì nó nhận luôn là "P")

dòng nhắc không ghi được giá trị cũ.

VD: trước đó điền d = 0.2. thì lặp lại lệnh dòng nhắc cần ghi: Nhap khoang cach giua cac text: <0.2> ......

trước đó nhập "T" thì lặp lại lệnh dòng nhắc cần ghi: Text co dinh nam ben Trai hay Phai <T or P> <T>
 

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

lưu giữ được giá trị d, nhưng ko lưu được bên trái hay phải bác ạ. (lặp lại lisp thì nó nhận luôn là "P")

dòng nhắc không ghi được giá trị cũ.

VD: trước đó điền d = 0.2. thì lặp lại lệnh dòng nhắc cần ghi: Nhap khoang cach giua cac text: <0.2> ......

trước đó nhập "T" thì lặp lại lệnh dòng nhắc cần ghi: Text co dinh nam ben Trai hay Phai <T or P> <T>

 

Hề hề hề,

lưu ý giá trị trả về của hàm (gestring ....) khác với hàm (getreal ...) khi nhấn enter 

 

Do hàm (getstring ...) trả về một chuỗi "" khi không nhập gì trên dòng command chứ không phải là nil.

Vì vậy nếu như bạn muốn cần làm như sau:

 

(setq d1 (getreal (strcat "\n Nhap khoang cach giua cac text <" (rtos d 2 2) ">: ")))

(if d1 (setq d d1))

 

(setq ort1 (getstring (strcat "\n Text co dinh nam ben Trai hay ben Phai <T or P> <" (strcase ort) ">: ")))

(if (= ort1 "T") (setq ort ort1)(setq ort "P"))

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

oa oa oa. phần biến thì đặt như nào bạn nhỉ?

thay rồi sao lisp không chạy? :D

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=57792&st=20
 
;;;;;;Sap xep cac text dung theo khoang cach ngang nhap vao. Co hai lua chon: sap xep tu trai qua phai va nguoc lai
 
 
(defun c:dk (/ oldos p d1 enlst i ht cn cd ort1)
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)

(setq d1 (getreal (strcat "\n Nhap khoang cach giua cac text <" (rtos d 2 2) ">: ")))
(if d1 (setq d d1))

(setq ort1 (getstring (strcat "\n Text co dinh nam ben Trai hay ben Phai <T or P> <" (strcase ort) ">: ")))
(if (= ort1 "T") (setq ort ort1)(setq ort "P")) 



;;;(setq ;;;;; p (getpoint "\n Chon diem chuan ")
        d (getreal "\n Nhap khoang cach giua cac text: ") )
;;;;(setq ort (getstring "\n Text co dinh nam ben Trai hay Phai <T or P>: "))


(prompt "\n Chon nhom text can sap xep")
(setq  enlst (acet-ss-to-list (ssget (list (cons 0 "text") ))))
(while enlst
   	(command "undo" "be")
   	(setq i 0)
   	(setq enlst (vl-sort enlst '(lambda (x y) (< (caar (acet-ent-geomextents x)) (caar (acet-ent-geomextents y))))))
   	(if (= (strcase ort) "T")
   	(setq p (if (or (/= (cdr (assoc 72 (entget (car enlst)))) 0) (/= (cdr (assoc 73 (entget (car enlst)))) 0))
                        (cdr (assoc 11 (entget (car enlst)))) (cdr (assoc 10 (entget (car enlst))))  )
       		cn (cdr (assoc 72 (entget (car enlst))))
       		cd (cdr (assoc 73 (entget (car enlst))))
   	)
   	(setq p (if (or (/= (cdr (assoc 72 (entget (last enlst)))) 0) (/= (cdr (assoc 73 (entget (last enlst)))) 0))
                        (cdr (assoc 11 (entget (last enlst)))) (cdr (assoc 10 (entget (last enlst))))  )
       		cn (cdr (assoc 72 (entget (last enlst))))
       		cd (cdr (assoc 73 (entget (last enlst))))
               enlst (reverse enlst)
   	)
   	)
   	(foreach en enlst
            (setq encode (entget en)
                    ht (cdr (assoc 40 encode))                  
                    encode (subst (cons 72 cn) (assoc 72 encode) encode)
                    encode (subst (cons 73 cd) (assoc 73 encode) encode)                  
     		)
     		(if (= (strcase ort) "T")
         		(setq  encode (subst (cons 11 (list (+ (car p)  (* i (+ d ht))) (caddr (assoc 11 encode)))) (assoc 11 encode) encode))
         		(setq  encode (subst (cons 11 (list (- (car p)  (* i (+ d ht))) (caddr (assoc 11 encode)))) (assoc 11 encode) encode))
     		)
     		(entmod encode)
     		(setq  i (1+ i))
        )
   	;;; (setq ans (getstring "\n Ban muon tiep tuc chinh text <Y or N> : "))
   	;;; (if (= (strcase ans) "Y")
   	;;; 	(progn
         		(prompt "\n Hay chon nhom text can sap xep tiep theo")
         		(setq enlst (acet-ss-to-list (ssget (list (cons 0 "text")))))
   	;;; 	)
   	;;; 	(setq enlst nil)
   	;;; )
        (command "undo" "e")
)
(setvar "osmode" oldos)
 
(princ)
)            


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

mình muốn nó lưu giữ thông số như dạng của lisp này bạn ạ:

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=4077&pid=192557&st=0entry192557
 
(defun c:ths (/ Ename Elist Msg Oldtext Oldlist Newtext Newlist)
(command "undo" "be")
(setq donvi (/ (getvar "viewsize") 40))
(setq ddd (entsel "\nChon text bi tru"))
(while
 (or
   (null ddd)
   (/= "TEXT" (cdr (assoc 0 (entget (car ddd)))))
)
(princ "\nDoi tuong khong phai la text! Chon lai")
(setq ddd (entsel "\nChon text bi tru"))
)

  (setq DTDTT (car ddd))
  (setq DTTT (entget DTDTT))
  (setq NDTTT (cdr (assoc 1 DTTT)))
  (setq NDTTT (atof NDTTT))
  (setq DIEMVIETTEXT (cdr (assoc 10 DTTT)))
(setq diemvt1 (polar DIEMVIETTEXT pi donvi))
(setq diemvt2 (polar DIEMVIETTEXT (* 2 pi) donvi))
(setq diemvt3 (polar DIEMVIETTEXT (/ pi 2) donvi))
(setq diemvt4 (polar DIEMVIETTEXT (- 0 (/ pi 2)) donvi))
        	(grdraw diemvt1 diemvt2 3)
        	(grdraw diemvt3 diemvt4 3)
(if (= droffln nil)
(setq droffln1 2.00)
(setq droffln1 droffln)
)
(setq
droffln (GETdist (strcat "\nNhap hang so tru: <" (rtos droffln1 2 2) ">")) 
)
(if (= droffln nil)
(setq droffln droffln1)
)

(setq ketquaxuat (- NDTTT droffln))
(setq ketquaxuat (rtos ketquaxuat 2 2))
(setq dddsn (entsel "\nChon text xuat ket qua"))
(while
 (or
   (null dddsn)
   (/= "TEXT" (cdr (assoc 0 (entget (car dddsn)))))
)
(princ "\nDoi tuong khong phai la text! Chon lai")
(setq dddsn (entsel "\nChon text tru"))
)

       	(setq DTDTTsn (car dddsn))
       	(setq DTMs (entget DTDTTsn))
       	(setq DTMs (subst (cons 1 ketquaxuat) (assoc 1 DTMs) DTMs))
       	(entmod DTMs)

(command "undo" "end")
  	(Princ))
 


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

 

oa oa oa. phần biến thì đặt như nào bạn nhỉ?

thay rồi sao lisp không chạy? :D

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=57792&st=20
 
;;;;;;Sap xep cac text dung theo khoang cach ngang nhap vao. Co hai lua chon: sap xep tu trai qua phai va nguoc lai
 
 
(defun c:dk (/ oldos p d1 enlst i ht cn cd ort1)
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)

(setq d1 (getreal (strcat "\n Nhap khoang cach giua cac text <" (rtos d 2 2) ">: ")))
(if d1 (setq d d1))

(setq ort1 (getstring (strcat "\n Text co dinh nam ben Trai hay ben Phai <T or P> <" (strcase ort) ">: ")))
(if (= ort1 "T") (setq ort ort1)(setq ort "P")) 



;;;(setq ;;;;; p (getpoint "\n Chon diem chuan ")
        d (getreal "\n Nhap khoang cach giua cac text: ") )
;;;;(setq ort (getstring "\n Text co dinh nam ben Trai hay Phai <T or P>: "))


(prompt "\n Chon nhom text can sap xep")
(setq  enlst (acet-ss-to-list (ssget (list (cons 0 "text") ))))
(while enlst
   	(command "undo" "be")
   	(setq i 0)
   	(setq enlst (vl-sort enlst '(lambda (x y) (< (caar (acet-ent-geomextents x)) (caar (acet-ent-geomextents y))))))
   	(if (= (strcase ort) "T")
   	(setq p (if (or (/= (cdr (assoc 72 (entget (car enlst)))) 0) (/= (cdr (assoc 73 (entget (car enlst)))) 0))
                        (cdr (assoc 11 (entget (car enlst)))) (cdr (assoc 10 (entget (car enlst))))  )
       		cn (cdr (assoc 72 (entget (car enlst))))
       		cd (cdr (assoc 73 (entget (car enlst))))
   	)
   	(setq p (if (or (/= (cdr (assoc 72 (entget (last enlst)))) 0) (/= (cdr (assoc 73 (entget (last enlst)))) 0))
                        (cdr (assoc 11 (entget (last enlst)))) (cdr (assoc 10 (entget (last enlst))))  )
       		cn (cdr (assoc 72 (entget (last enlst))))
       		cd (cdr (assoc 73 (entget (last enlst))))
               enlst (reverse enlst)
   	)
   	)
   	(foreach en enlst
            (setq encode (entget en)
                    ht (cdr (assoc 40 encode))                  
                    encode (subst (cons 72 cn) (assoc 72 encode) encode)
                    encode (subst (cons 73 cd) (assoc 73 encode) encode)                  
     		)
     		(if (= (strcase ort) "T")
         		(setq  encode (subst (cons 11 (list (+ (car p)  (* i (+ d ht))) (caddr (assoc 11 encode)))) (assoc 11 encode) encode))
         		(setq  encode (subst (cons 11 (list (- (car p)  (* i (+ d ht))) (caddr (assoc 11 encode)))) (assoc 11 encode) encode))
     		)
     		(entmod encode)
     		(setq  i (1+ i))
        )
   	;;; (setq ans (getstring "\n Ban muon tiep tuc chinh text <Y or N> : "))
   	;;; (if (= (strcase ans) "Y")
   	;;; 	(progn
         		(prompt "\n Hay chon nhom text can sap xep tiep theo")
         		(setq enlst (acet-ss-to-list (ssget (list (cons 0 "text")))))
   	;;; 	)
   	;;; 	(setq enlst nil)
   	;;; )
        (command "undo" "e")
)
(setvar "osmode" oldos)
 
(princ)
)            


Hề hề hề,

Có hai lỗi làm lisp không chạy:

1/ Bạn còn để lại dòng code:

d (getreal "\n Nhap khoang cach giua cac text: ") )

Chưa bị vô hiệu hoá.

2/- Code mình gửi bạn chưa đầy đủ, bị thiếu giá trị trả về khi điều kiện check không thoả của hàm if nên lisp không hiểu.

 

Vậy nên mình đã sửa và check lại như sau thì nó chạy bon bon. Sorry vì chủ quan không check code trước khi post bài.

 

(setq d1 (getreal (strcat "\n Nhap khoang cach giua cac text <" (if (/= d nil) (rtos d 2 2) "") ">: ")))

(if d1 (setq d d1))

 

(setq ort1 (getstring (strcat "\n Text co dinh nam ben Trai hay ben Phai <T or P> <" (if (/= ort nil) (strcase ort) "") ">: ")))

(if (/= ort1 "") (setq ort ort1) (setq ort1 ort) )

  • 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

hí hí, ngon roài. thanks phamthanhbinh.

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=57792&st=20
 
;;;;;;Sap xep cac text dung theo khoang cach ngang nhap vao. Co hai lua chon: sap xep tu trai qua phai va nguoc lai
 
 
(defun c:dk (/ oldos p d1 enlst i ht cn cd ort1)
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(setq d1 (getreal (strcat "\n Nhap khoang cach giua cac text <" (if (/= d nil) (rtos d 2 2) "") ">: ")))
(if d1 (setq d d1)) 
(setq ort1 (getstring (strcat "\n Text co dinh nam ben Trai hay ben Phai <T or P> <" (if (/= ort nil) (strcase ort) "") ">: ")))
(if (/= ort1 "") (setq ort ort1) (setq ort1 ort) )
(prompt "\n Chon nhom text can sap xep")
(setq  enlst (acet-ss-to-list (ssget (list (cons 0 "text") ))))
(while enlst
   	(command "undo" "be")
   	(setq i 0)
   	(setq enlst (vl-sort enlst '(lambda (x y) (< (caar (acet-ent-geomextents x)) (caar (acet-ent-geomextents y))))))
   	(if (= (strcase ort) "T")
   	(setq p (if (or (/= (cdr (assoc 72 (entget (car enlst)))) 0) (/= (cdr (assoc 73 (entget (car enlst)))) 0))
                        (cdr (assoc 11 (entget (car enlst)))) (cdr (assoc 10 (entget (car enlst))))  )
       		cn (cdr (assoc 72 (entget (car enlst))))
       		cd (cdr (assoc 73 (entget (car enlst))))
   	)
   	(setq p (if (or (/= (cdr (assoc 72 (entget (last enlst)))) 0) (/= (cdr (assoc 73 (entget (last enlst)))) 0))
                        (cdr (assoc 11 (entget (last enlst)))) (cdr (assoc 10 (entget (last enlst))))  )
       		cn (cdr (assoc 72 (entget (last enlst))))
       		cd (cdr (assoc 73 (entget (last enlst))))
               enlst (reverse enlst)
   	)
   	)
   	(foreach en enlst
            (setq encode (entget en)
                    ht (cdr (assoc 40 encode))                  
                    encode (subst (cons 72 cn) (assoc 72 encode) encode)
                    encode (subst (cons 73 cd) (assoc 73 encode) encode)                  
     		)
     		(if (= (strcase ort) "T")
         		(setq  encode (subst (cons 11 (list (+ (car p)  (* i (+ d ht))) (caddr (assoc 11 encode)))) (assoc 11 encode) encode))
         		(setq  encode (subst (cons 11 (list (- (car p)  (* i (+ d ht))) (caddr (assoc 11 encode)))) (assoc 11 encode) encode))
     		)
     		(entmod encode)
     		(setq  i (1+ i))
        )
   	;;; (setq ans (getstring "\n Ban muon tiep tuc chinh text <Y or N> : "))
   	;;; (if (= (strcase ans) "Y")
   	;;; 	(progn
         		(prompt "\n Hay chon nhom text can sap xep tiep theo")
         		(setq enlst (acet-ss-to-list (ssget (list (cons 0 "text")))))
   	;;; 	)
   	;;; 	(setq enlst nil)
   	;;; )
        (command "undo" "e")
)
(setvar "osmode" oldos)
 
(princ)
)            


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

Đăng nhập để thực hiện theo  

×