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  
Who am I

Sửa giúp lisp

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

Who am I    1

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

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

  • 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

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  

×