Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
8 replies to this topic

#1 ph168xd

ph168xd

    biết lệnh adcenter

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

Đã gửi 27 September 2008 - 11:00 PM

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
  • 0

#2 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 28 September 2008 - 12:09 AM

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.c...ent/view/22/34/
  • 0

#3 ph168xd

ph168xd

    biết lệnh adcenter

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

Đã gửi 28 September 2008 - 12:34 AM

bạn xem lisp dồn số hiệu bản vẽ ở đây: http://www.cadviet.c...ent/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...
  • 0

#4 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 28 September 2008 - 08:26 AM

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.
  • 0

#5 ph168xd

ph168xd

    biết lệnh adcenter

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

Đã gửi 28 September 2008 - 10:31 AM

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
  • 0

#6 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 28 September 2008 - 11:24 AM

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.
  • 0

#7 ph168xd

ph168xd

    biết lệnh adcenter

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

Đã gửi 28 September 2008 - 11:43 AM

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
  • 0

#8 Guest_Guest_traitimsat034_*_*

Guest_Guest_traitimsat034_*_*
  • Guests
Điểm đánh giá:

Đã gửi 28 September 2008 - 02:11 PM

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


  • 0

#9 traitimsat034

traitimsat034

    biết vẽ pline

  • Members
  • PipPip
  • 61 Bài viết
Điểm đánh giá: 15 (tàm tạm)

Đã gửi 28 September 2008 - 02:19 PM

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