Chuyển đến nội dung
Diễn đàn CADViet
interwar1283

Chuyển layer.

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

Mình có vấn đề như thế này:

Ví dụ: trong một bản vẽ mình có nhiều layer trong đó có layer: 1 và layer: 2

bây giờ mình muốn chuyển tất cả những đối tượng thuộc về layer 1 thành layer 2 (kể cả những đối tượng nằm trong block), để có thể xóa layer 1 đi mà không mất thông tin bản vẽ.

Có thể bằng lệnh của Cad hoạc bằng Lisp, bác nào biết chỉ giúp với, xin cám ơn !

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 có ai giúp mình vấn đề này sao, mình làm mới nó hi vọng nhận được sự chú ý của các bạn, mong mọi người hết sức thông cảm.

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 có ai giúp mình vấn đề này sao, mình làm mới nó hi vọng nhận được sự chú ý của các bạn, mong mọi người hết sức thông cảm.

 

Bạn dùng lệnh laytrans của AutoCAD: http://www.cadviet.com/content/view/41/34/.

 

Nếu bạn đang sử dụng ACAD đời thấp, không có lệnh laytrans thì dùng lisp dưới đây, lệnh là CHUYENLAYER:

(defun c:chuyenlayer (/ ent laysrc laydes)
 (defun convrt	(ent / tt as)
   (setq tt (entget ent)
  as (assoc 8 tt)
   )
   (if	(and
  as
  (= (cdr as) laysrc)
)
     (progn
(setq tt (subst (cons 8 laydes) as tt))
(entmod tt)
     )
   )
 )
 (princ "\nChuyen layer © CADViet.com")
 (setq
   laysrc (getstring t "\nVao layer nguon: ")
   laydes (getstring t "\nVao layer dich: ")
   ent	   (entnext)
   ht	   (tblnext "block" t)
 )
 (while ent
   (convrt ent)
   (setq ent (entnext ent))
 )
 (while ht
   (setq ent  (cdr (assoc -2 ht))
  tt   (entget ent)
  name (cdr (assoc 0 tt))
   )
   (while (and ent (/= name "ENDBLK"))
     (convrt ent)
     (setq ent (entnext ent))
     (if ent
(setq
  tt   (entget ent)
  name (cdr (assoc 0 tt))
)
     )
   )    
   (setq ht (tblnext "block"))
 )
 (command ".regen")
 (princ)
)
(princ "\nChuyen layer © CADViet.com")
(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
Mình có vấn đề như thế này:

Ví dụ: trong một bản vẽ mình có nhiều layer trong đó có layer: 1 và layer: 2

bây giờ mình muốn chuyển tất cả những đối tượng thuộc về layer 1 thành layer 2 (kể cả những đối tượng nằm trong block), để có thể xóa layer 1 đi mà không mất thông tin bản vẽ.

Có thể bằng lệnh của Cad hoạc bằng Lisp, bác nào biết chỉ giúp với, xin cám ơn !

 

có 1 cách rất đơn giản và ko cần dùng lisp là bạn chỉ cần isolayer vào layer cần chuyển bấm ctrl + A rồi đổi về layer hiện tại sao đó pu là xong

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 cách rất đơn giản và ko cần dùng lisp là bạn chỉ cần isolayer vào layer cần chuyển bấm ctrl + A rồi đổi về layer hiện tại sao đó pu là xong

Thực ra không cần phải như vậy :

bạn dùng lệnh LAYMRG để gộp layer---> chọn layer 1 ---> enter , chọn layer 2--> enter

vậy là các đối tượng layer 1 chuyển thành layer 2

:cheers: :D :D :cheers:

  • 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ì ! cái này e có thử qua ! e xin lỗi chưa nói dõ ! hix ! nhưng cái lẹnh dài we'  nên e mới xin líp khó nhớ lắm ! :P hì hì mà e làm lệnh mấy lần ! chỉ gộp 2 laeyr thui ! a chỉ e cách gộp nhiều layer dk hem ạ ^^ ! e gà lắm ! mới học cad 

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ác mód và các anh em tren dien dan ơi cuu em với em dang rat đầu về vấn đề này . em làm việc với autocad rồi xcell tat ca đều thế hiên trên màn hình.em   ngồi làm viêc trong van phong bao nhiêu người soi moi nhin cái màn hình của em để ăn cắp những gì em nghi ra em phải làm thế nào bây giờ! bác cứu em vụ này với.....

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
Vào lúc 15/8/2007 tại 22:25, Nguyen Hoanh đã nói:

 

Bạn dùng lệnh laytrans của AutoCAD: http://www.cadviet.com/content/view/41/34/.

 

Nếu bạn đang sử dụng ACAD đời thấp, không có lệnh laytrans thì dùng lisp dưới đây, lệnh là CHUYENLAYER:

 

  • chuyenlayer.lsp
    lisp help
  •  

(defun c:chuyenlayer (/ ent laysrc laydes)
 (defun convrt	(ent / tt as)
   (setq tt (entget ent)
  as (assoc 8 tt)
   )
   (if	(and
  as
  (= (cdr as) laysrc)
)
     (progn
(setq tt (subst (cons 8 laydes) as tt))
(entmod tt)
     )
   )
 )
 (princ "\nChuyen layer © CADViet.com")
 (setq
   laysrc (getstring t "\nVao layer nguon: ")
   laydes (getstring t "\nVao layer dich: ")
   ent	   (entnext)
   ht	   (tblnext "block" t)
 )
 (while ent
   (convrt ent)
   (setq ent (entnext ent))
 )
 (while ht
   (setq ent  (cdr (assoc -2 ht))
  tt   (entget ent)
  name (cdr (assoc 0 tt))
   )
   (while (and ent (/= name "ENDBLK"))
     (convrt ent)
     (setq ent (entnext ent))
     (if ent
(setq
  tt   (entget ent)
  name (cdr (assoc 0 tt))
)
     )
   )    
   (setq ht (tblnext "block"))
 )
 (command ".regen")
 (princ)
)
(princ "\nChuyen layer © CADViet.com")
(princ)
 

 

hay quá mình đang rất cần.

mình có 1 lisp nhờ các bác sửa dùm

lisp chay ok rồi nhưng mình muốn thêm chức năng khi sư dung lisp thì dim được tạo ra phải ở 1 layer nhất định cho dù mình thao tác ở layer bất kì

vd: mình đang thao tác ở layer1,2,3,... gọi lisp lên thao tác xong lisp tạo ra 1dim nằm ở layer4(mặt định)

(các layer đã được tạo sẳn rồi)

 

mong được giúp đở

Thank!

DDD.LSP

  • Vote giảm 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
17 giờ trước, tien2005 đã nói:

Bạn tham khảo link


http://www.lee-mac.com/layerdirector.html

http://www.lee-mac.com/layerdirector.html

 

Bạn có thể chỉ định cho hacth, text, dim, ...

 

Vào lúc 10/1/2020 tại 08:20, Hoangnhanst đã nói:

hay quá mình đang rất cần.

mình có 1 lisp nhờ các bác sửa dùm

lisp chay ok rồi nhưng mình muốn thêm chức năng khi sư dung lisp thì dim được tạo ra phải ở 1 layer nhất định cho dù mình thao tác ở layer bất kì

vd: mình đang thao tác ở layer1,2,3,... gọi lisp lên thao tác xong lisp tạo ra 1dim nằm ở layer4(mặt định)

(các layer đã được tạo sẳn rồi)

 

mong được giúp đở

Thank!

DDD.LSP

Mình mới bắt đầu sử dụng lisp nên chưa rành lắm mong bác giúp mình 

thank!

  • Vote giảm 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

Bạn down lisp từ link trên về rồi dùng notepad (hoặc tại dòng cửa sổ acad đánh lệnh "vlide" để mở chương trình visual lisp) để mở lên rồi thêm lệnh của Bạn vào

;;-----------------------------------------------------------------------------------------------------------------------------------------------------;;
;;  Command Pattern  |  Layer Name    |       Description       |    Colour    |   Linetype   |    Lineweight    |       Plot       |    Plot Style    ;;
;;-----------------------------------------------------------------------------------------------------------------------------------------------------;;
;;     [string]      |   [string]     |         [string]        | 0 < int <256 |   [string]   | -3 = Default     |  1 = Will Plot   |     [string]     ;;
;;                   |                |     Use "" for none     |              |              |  0 <= int <= 211 |  0 = Won't Plot  |  Use nil for CTB ;;
;;-----------------------------------------------------------------------------------------------------------------------------------------------------;;
 
("[DM]TEXT,TEXT"       "TEXT"           "Text Layer"                   2        "Continuous"           -3                 1                 nil         )
("DIM*,*LEADER"        "DIMENSIONS"     "Dimension Layer"              3        "Continuous"           -3                 1                 nil         )
("*VPORT*"             "DEFPOINTS"      ""                             7        "Continuous"           -3                 0                 nil         )
("XLINE"               "XLINE"          "Construction Lines"          12        "HIDDEN"                0                 0                 nil         )
 
;;-----------------------------------------------------------------------------------------------------------------------------------------------------;;

("[DM]TEXT,TEXT"       "TEXT"           "Text Layer"                   2        "Continuous"           -3                 1                 nil         )

("DIM*,*LEADER,DDD"        "DIMENSIONS"     "Dimension Layer"              3        "Continuous"           -3                 1                 nil         )

("*VPORT*"             "DEFPOINTS"      ""                             7        "Continuous"           -3                 0                 nil         )

("XLINE"               "XLINE"          "Construction Lines"          12        "HIDDEN"                0                 0                 nil         )

 

Khi Bạn dùng lệnh DDD thì dim mới được tạo sẽ ở layer DIMENSIONS

Các thông số trên Bạn có thể thêm tên lệnh, thay đổi tên layer, màu sắc, Linetype , Lineweight, .... theo ý của BẠn

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

×