Đến nội dung


Hình ảnh
- - - - -

Sửa giúp lisp


  • Please log in to reply
1 reply to this topic

#1 Who am I

Who am I

    biết vẽ line

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

Đã gửi 17 May 2009 - 05:26 PM

Em thường đãng trí khi viết ghi chú, ghi kích thước mà quên không chọn lớp thường dùng là lớp TEXT, nên em dùng lisp này để chuyển toàn bộ các đối tượng là DIM, TEXT, MTEXT ở các lướp khác nhau về cùng một lớp.
Nhưng có sự cố là khi trong bản vẽ hiện hành mà không có đối tượng nào là DIM chẳng hạn, thì lisp này chạy không được trơn tru. Nhờ các anh sửa giúp em với.
;;----CHUYEN TOAN BO CAC DUONG KICH THUOC O CAC LAYER KHAC ----
;;================NHAU VE CUNG 1 LAYER ---=====================

(defun C:LD ()
(prompt "\nCHUYEN TOAN BO CAC DOI TUONG DANG TEXT O CAC LAYER KHAC NHAU VE CUNG 1 LAYER")
(Setvar "CMDECHO" 0)
;Tao Layer moi:
(setq NEWLAY (Getstring "\nChon layer muon chuyen :")
NEWLAY (if (= NEWLAY "") "TEXT"NEWLAY)
)
(Command ".Layer" "N" NEWLAY "")
(Command ".Layer" "S" NEWLAY "")

;Thay doi Layer cho duong kich thuoc:
(Setq DIMSET (ssget "X" '((0 . "DIMENSION"))))
(Command ".chprop" DIMSET "" "LA" NEWLAY "")

;Thay doi Layer cho cac doi tuong la Text:
(Setq TextSET (ssget "X" '((0 . "TEXT"))))
(Command ".chprop" TextSET "" "LA" NEWLAY "")

;Thay doi Layer cho cac doi tuong la MText:
(Setq MTextSET (ssget "X" '((0 . "MTEXT"))))
(Command ".chprop" MTextSET "" "LA" NEWLAY "")

(Setvar "CMDECHO" 0)
(setvar "osmode" 35)
(princ)
)

  • 0

#2 q288

q288

    biết lệnh fillet

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

Đã gửi 17 May 2009 - 05:52 PM

Em thường đãng trí khi viết ghi chú, ghi kích thước mà quên không chọn lớp thường dùng là lớp TEXT, nên em dùng lisp này để chuyển toàn bộ các đối tượng là DIM, TEXT, MTEXT ở các lướp khác nhau về cùng một lớp.
Nhưng có sự cố là khi trong bản vẽ hiện hành mà không có đối tượng nào là DIM chẳng hạn, thì lisp này chạy không được trơn tru. Nhờ các anh sửa giúp em với.



Cũng đơn giản thôi bạn à, chỉ cần thêm if vào là đc, như sau:
(defun C:LD ()
(prompt "\nCHUYEN TOAN BO CAC DOI TUONG DANG TEXT O CAC LAYER KHAC NHAU VE CUNG 1 LAYER")
(Setvar "CMDECHO" 0)
;Tao Layer moi:
(setq NEWLAY (Getstring "\nChon layer muon chuyen :")
NEWLAY (if (= NEWLAY "") "TEXT"NEWLAY)
)
(Command ".Layer" "N" NEWLAY "")
(Command ".Layer" "S" NEWLAY "")

;Thay doi Layer cho duong kich thuoc:
(Setq DIMSET (ssget "X" '((0 . "DIMENSION"))))
(if DIMSET (Command ".chprop" DIMSET "" "LA" NEWLAY ""))

;Thay doi Layer cho cac doi tuong la Text:
(Setq TextSET (ssget "X" '((0 . "TEXT"))))
(if TextSET (Command ".chprop" TextSET "" "LA" NEWLAY ""))

;Thay doi Layer cho cac doi tuong la MText:
(Setq MTextSET (ssget "X" '((0 . "MTEXT"))))
(if MTextSET (Command ".chprop" MTextSET "" "LA" NEWLAY ""))

(Setvar "CMDECHO" 0)
(setvar "osmode" 35)
(princ)
)

  • 1