Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
ph168xd

lisp chuyển đổi vị trí các kt cho nhau

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

Mình có 1 bản vẽ từ kt-01 đến kt-50

Nhưng bất chợt phát hiện ra vị trí của các bản vẽ sắp xếp không đung thứ tự

Có nghĩa là kt-10 phải là kt-15, kt-15 phải là kt 21, kt14 phải là kt-13.....

Mình muốn xin 1 lish có thể chuyển đổi vị trí các kt cho nhau. Thanks rất nhiều

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 có 1 bản vẽ từ kt-01 đến kt-50

Nhưng bất chợt phát hiện ra vị trí của các bản vẽ sắp xếp không đung thứ tự

Có nghĩa là kt-10 phải là kt-15, kt-15 phải là kt 21, kt14 phải là kt-13.....

Mình muốn xin 1 lish có thể chuyển đổi vị trí các kt cho nhau. Thanks rất nhiều

bạn xem lisp dồn số hiệu bản vẽ ở đây: http://www.cadviet.com/cadnews/content/view/22/34/

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 xem lisp dồn số hiệu bản vẽ ở đây: http://www.cadviet.com/cadnews/content/view/22/34/

 

Em biết lish đó anh Hoành ạh

Nhưng trường hợp của em không làm đc như thê

Ko phải em muốn thêm haymuốn bỏ 1 bản vẽ nào đó

Mà vì các kt của em đang bi sắp xếp linh tinh và bây giừo cần sắp xếp lại

kt-a thành kt-b

kt-b thành kt-c

Nhưng kt-c lại có thể quay lai thành kt-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
Em biết lish đó anh Hoành ạh

Nhưng trường hợp của em không làm đc như thê

Ko phải em muốn thêm haymuốn bỏ 1 bản vẽ nào đó

Mà vì các kt của em đang bi sắp xếp linh tinh và bây giừo cần sắp xếp lại

kt-a thành kt-b

kt-b thành kt-c

Nhưng kt-c lại có thể quay lai thành kt-a...

bạn dùng lệnh FIND, sau đó lần lượt chuyển:

- kt-a thành kts-b

- kt-b thành kts-c

- kt-c thành kts-a

- kts- thành kt-

 

Cách này là cách tôi vẫn thường dùng.

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 dùng lệnh FIND, sau đó lần lượt chuyển:

- kt-a thành kts-b

- kt-b thành kts-c

- kt-c thành kts-a

- kts- thành kt-

 

Cách này là cách tôi vẫn thường dùng.

 

 

Làm thế ít thì còn khôg sao. Nhưng nếu rất nhiều bản vẽ thì lại là 1 vấn đề

 

Có 1 điều nữa. Nếu anhchuyển đc a->b

Sau đó áp dụng b->c thì chắc chãn toàn bộ a và b đèu thành c

Vì a đã bị chuyển hết về b rồi

 

Đó là vấn đề em đang gặp phải

 

Anh xem có cách nào tư vấn giúp em nhé

Thanks 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
Có 1 điều nữa. Nếu anhchuyển đc a->b

Sau đó áp dụng b->c thì chắc chãn toàn bộ a và b đèu thành c

Vì a đã bị chuyển hết về b rồi

Không hề,

vì chuyển kt-a thành kts-b,

kt-b thành kts-c, như vậy kts-b khác với kt-b sẽ không bị chuyển.

bước cuối cùng là chuyển kts- thành kt-

 

bạn cứ làm theo, chắc chắn ngon lành.

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
Không hề,

vì chuyển kt-a thành kts-b,

kt-b thành kts-c, như vậy kts-b khác với kt-b sẽ không bị chuyển.

bước cuối cùng là chuyển kts- thành kt-

 

bạn cứ làm theo, chắc chắn ngon lành.

 

 

Oa hay quá! Thế mà em khong nghĩ ra.

Nhưng mà có 1 lish làm được điều đó thì tốt hơn nhiều đúng không anh

Thanks anh và cả click vào nút thanks 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
Khách
Oa hay quá! Thế mà em khong nghĩ ra.

Nhưng mà có 1 lish làm được điều đó thì tốt hơn nhiều đúng không anh

Thanks anh và cả click vào nút thanks 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
Oa hay quá! Thế mà em khong nghĩ ra.

Nhưng mà có 1 lish làm được điều đó thì tốt hơn nhiều đúng không anh

Thanks anh và cả click vào nút thanks nữa

mình cũng chưa rõ bạn cần đổi text hay đổi bản vẽ nhưng hình như bạn duy đã có viết lisp vậy rồi mà.

;- lisp đổi chỗ hai đối tượng

 

;SWAPENT - Swaps two entities.

;

;Jeffery P Sanders

;

(defun C:SWE()

(setq scd(getvar "cmdecho"))(setvar "cmdecho" 0)

(princ "\n \nSelect First Entity Set: ")

(setq eset1(ssget))

(setq pt1(getpoint "\n \n \nDisplacement Point: "))

(princ "\n \nSelect First Entity Set: ")

(setq eset2(ssget))

(setq pt2(getpoint "\n \n \nDisplacement Point: "))

(command "move" eset1 "" pt1 pt2)

(command "move" eset2 "" pt2 pt1)

(command "redraw")

(setvar "cmdecho" scd)

(princ)

)

 

;- lisp đổi chỗ hai text

 

;SWAPTXT - Quickly swaps two text entities.

;

;Jeffery P Sanders

;

(defun C:SWT(/ ht eset enlist len)

(princ "\n ")(princ "\n ")

(princ "\nSelect Both Text Entities: ")

(setq eset(ssget))

(if (and (/= eset nil)(> (sslength eset) 1))

(progn

(setq en1(ssname eset 0))

(setq enlist1(entget en1))

(setq en2(ssname eset 1))

(setq enlist2(entget en2))

(princ "\n ") (princ "\n ")

(princ "\n...Please Wait....Exchanging Text...")

(setq txt1(cdr (assoc 1 enlist1)))

(setq txt2(cdr (assoc 1 enlist2)))

(setq enlist1 (subst

(cons 1 txt2)

(assoc 1 enlist1)

enlist1

)

)

(entmod enlist1)

(setq enlist2 (subst

(cons 1 txt1)

(assoc 1 enlist2)

enlist2

)

)

(entmod enlist2)

)

(princ "\nNothing Selected")

)

(princ "\n ....SWapTxt Complete.")(princ "\n ")

(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  

×