Đến nội dung


Hình ảnh
- - - - -

[YÊU CẦU] Nhờ viết LISP Isolate một nhóm Layer.


  • Please log in to reply
18 replies to this topic

#1 Ce.truonghai

Ce.truonghai

    Edu level: li2

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

Đã gửi 23 April 2014 - 11:52 AM

Chào AE CADViet,

Trong Hộp thoại Layer Properties Manager, có chức năng Group Filter để phân nhóm Layer. Do mình phải thường xuyên chuyển đổi giữa các nhóm Layer (Vẽ nhiều lớp layer chồng trên cùng 1 file) nên nhờ AE viết dùm mình 1 LISP để gán phím tắt để hiện từng nhóm. Cụ thể như sau:

 

- Bản vẽ của mình có 10 Group, với tên Group từ 01 đến 10.

- Rồi On và Thawed tất cả các Layer và chuyển Layer 0 về hiện hành (để Insolate Group không chứa Layer hiện hành)

- Chọn Group mình muốn và Insolate Group > All Viewport (thì chỉ những Layer trong Group mình chọn được Thawed, các Layer ngoài Group sẽ bị Freeze)

- Đồng thời Thawed cho nhóm layer của XREF.

 

=> Thay vì muốn đổi giữa các Group như thao tác ở trên, mình muốn 1 LISP gán lệnh tắt để hiện từng Group như trên. VD: lệnh "g1" sẽ làm thao tác 3 bước như trên và chọn Group 1 để Insolate Group.

 

Mong các AE giúp mình viết LISP này.

 

Thanks AE CADViet nhiều.


  • 0

#2 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 23 April 2014 - 02:00 PM

Bạn cần upload file Cad có các Group-Filter lên để có cái mà check.

 

T/hợp số Group-Filter trong file Cad khác 10 thì thế nào?

VD : số Group-Filter trong file Cad là 20 thì phải viết 20 lệnh à ?!


  • 0

#3 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 23 April 2014 - 02:07 PM

Bạn cần upload file Cad có các Group-Filter lên để có cái mà check.

 

T/hợp số Group-Filter trong file Cad khác 10 thì thế nào?

VD : số Group-Filter trong file Cad là 20 thì phải viết 20 lệnh à ?!

Đỏ: Chắc là Reactor được chứ hè?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#4 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 23 April 2014 - 02:49 PM

Đỏ: Chắc là Reactor được chứ hè?

Giải pháp thì có rồi, nhưng ko biết ý chủ thớt thế nào ?


  • 0

#5 Ce.truonghai

Ce.truonghai

    Edu level: li2

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

Đã gửi 05 May 2014 - 01:28 PM

Trước tiên cám ơn các pro đã quan tâm,

Bữa trước up file bị lỗi, giờ mình up lại nè:

https://www.mediafir...xwgvkz7h35gbo3r

Đúng là nếu file có 20 group thì mình sẽ có 20 lệnh cho 20 Group cho nhanh (nhưng 1 file thực tế không nhiều đến nỗi 20 group đâu ah).

(Nếu được thì các pro viết dùm là gán lệnh tắt theo tên Group nha, không giới hạn số lượng Group)

Thank các pro rất nhiều, mong sẽ khả thi để có LISP này.


  • 0

#6 Ce.truonghai

Ce.truonghai

    Edu level: li2

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

Đã gửi 11 May 2014 - 12:22 PM

Sao không có pro nào giúp dùm mình ah... mình thấy LISP này cũng có ích thực tiễn mà. Mong sự giúp đỡ của các bro...


  • 0

#7 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 12 May 2014 - 05:29 PM

Bạn xài thử cái này.

http://www.mediafire...jl66q0n/pda.LSP

 

Bạn làm các bước sau:

1. Down cái lisp trên đây về, mở cad , vào lệnh ap > trong phần StartUp Suite > contents > Add > chỉ đường dẫn file mới down > close > close . Làm như vậy để mở file nào cũng load lisp này vào.

 

2. Mở file cần group layer. Đánh lệnh "pda", Nhấn 2 chữ (thí dụ "g" "1") để tạo tên lệnh (nhấn từng chữ một rời rạc chứ không phải nhấn 1 chữ rồi giữ nhấn chữ kia giống như ctrl-1), sau khi vừa nhấn xong 2 chữ thì chọn đối tượng thuộc nhóm layer đó (vừa xong 2 chữ là chuyển liền không cần enter). Cứ chọn 2 chữ rồi chọn layer như vậy đền khi nào hết group thì enter hoặc space để dừng lệnh.

 

3.Test lại bằng cách gõ "g1", "g2"... ở dòng command.

 

4.Làm việc xong nhớ save file lại, lần sau mở ra mới có sẵn các lệnh "g1" "g2"...để xài.

 

Chú ý: Nếu bạn chọn tên trùng tên lệnh có sẵn thì lệnh cũ không dùng được nữa (phải đổi tên lệnh cũ).

3.Test lại bằng cách gõ "g1", "g2"... ở dòng command.
 
3.Test lại bằng cách gõ "g1", "g2"... ở dòng command.
4.Làm việc xong nhớ save file lại, lần sau mở ra mới có sẵn các lệnh "g1" "g2"...để xài.
3.Test lại bằng cách gõ "g1", "g2"... ở dòng command.
4.Làm việc xong nhớ save file lại, lần sau mở ra mới có sẵn các lệnh "g1" "g2"...để xài.
3.Test lại bằng cách gõ "g1", "g2"... ở dòng command.
4.Làm việc xong nhớ save file lại, lần sau mở ra mới có sẵn các lệnh "g1" "g2"...để xài.
3.Test lại bằng cách gõ "g1", "g2"... ở dòng command.
4.Làm việc xong nhớ save file lại, lần sau mở ra mới có sẵn các lệnh "g1" "g2"...để xài.
1. Down cái lisp dưới đây về, mở cad , vào lệnh ap > trong phần StartUp Suite > contents > Add > chỉ đường dẫn file mới down > close > close . Làm như vậy để mở file nào cũng load lisp này vào.
2. Mở file cần group layer. Đánh lệnh "pda", Nhấn 2 chữ (thí dụ "g" "1") để tạo tên lệnh (nhấn từng chữ một rời rạc chứ không phải nhấn 1 chữ rồi giữ nhấn chữ kia giống như ctrl-1), sau khi vừa nhấn xong 2 chữ thì chọn đối tượng thuộc nhóm layer đó (vừa xong 2 chữ là chuyển liền không cần enter). Cứ chọn 2 chữ rồi chọn layer như vậy đền khi nào hết group thì enter hoặc space để dừng lệnh.
3.Test lại bằng cách gõ "g1", "g2"... ở dòng command.
4.Làm việc xong nhớ save file lại, lần sau mở ra mới có sẵn các lệnh "g1" "g2"...để xài.
 
Chú ý: Nếu bạn chọn tên trùng tên lệnh có sẵn thì lệnh cũ không dùng được nữa (phải đổi tên lệnh cũ).
 
Bạn làm các bước sau:
1. Down cái lisp dưới đây về, mở cad , vào lệnh ap > trong phần StartUp Suite > contents > Add > chỉ đường dẫn file mới down > close > close . Làm như vậy để mở file nào cũng load lisp này vào.
2. Mở file cần group layer. Đánh lệnh "pda", Nhấn 2 chữ (thí dụ "g" "1") để tạo tên lệnh (nhấn từng chữ một rời rạc chứ không phải nhấn 1 chữ rồi giữ nhấn chữ kia giống như ctrl-1), sau khi vừa nhấn xong 2 chữ thì chọn đối tượng thuộc nhóm layer đó (vừa xong 2 chữ là chuyển liền không cần enter). Cứ chọn 2 chữ rồi chọn layer như vậy đền khi nào hết group thì enter hoặc space để dừng lệnh.
3.Test lại bằng cách gõ "g1", "g2"... ở dòng command.
4.Làm việc xong nhớ save file lại, lần sau mở ra mới có sẵn các lệnh "g1" "g2"...để xài.
 
Chú ý: Nếu bạn chọn tên trùng tên lệnh có sẵn thì lệnh cũ không dùng được nữa (phải đổi tên lệnh cũ).

  • 1

#8 Ce.truonghai

Ce.truonghai

    Edu level: li2

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

Đã gửi 13 May 2014 - 08:25 AM

Cảm ơn bác Tot77 rất nhiều, để mình test thử. Mà thấy vẫn có 1 hạn chế là phải thực hiện thao tác gán lệnh lại cho từng file, không áp dụng cho các file có cùng cấu trúc đc nhỉ? Dù sao cũng cảm ơn nhiều lắm...

 

P/s: Em test rồi, LISP báo lỗi:

; error Bad agrument type: VLA-Object nil

Command: pda
 
Command: pda

  • 0

#9 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 13 May 2014 - 01:28 PM

Nếu bạn muốn chỉ làm 1 file rồi các file sau cứ thế mà xài thì down cái líp dưới đây về, xóa cái lisp cũ đi, vẫn để ở thư mục startup và làm như các bước bên trên.

http://www.mediafire...jl66q0n/pda.LSP

Bạn cũng không cần đặt tên g1,g2.. mà có thể đặt 00,01,...99, tức là với 2 ký tự bạn có thể có 100 group khác nhau, chỉ sợ bạn nhớ không hết thôi.


  • 1

#10 Ce.truonghai

Ce.truonghai

    Edu level: li2

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

Đã gửi 14 May 2014 - 08:41 AM

Cảm ơn bạn rất nhiều, để mình test lại lisp nha...

 

P/S: Mình chạy lệnh đc, chạy lệnh PDA xong bấm g 1 rùi chọn layer dc, nhưng enter xong lệnh thì gọi lại lệnh g1 nó không hiểu, báo lỗi rùi, bạn xem lại giúp mình nha. Thanks nhiều (Nếu được bạn viết thêm dùm mình là khi dùng lệnh g1 hoặc g01 (3 kí tự để không trùng lệnh khác) thì nó sẽ mở băng hết layer, chọn layer 0 hiện hành, rùi mới Insolate group layer của mình gán.

 

Thank bạn nhiều nhiều...


  • 0

#11 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 14 May 2014 - 06:06 PM

Dùng cái lisp dưới đây như sau:

1. Down về và chép đè lên lisp cũ trong thư mục startup suite.

2. Gõ pda, nhập tên lệnh xong thì enter.

3. Chọn layer, xong enter.

4. Tiếp tục mục 2 và 3. nhấn enter khi ở mục 2 để dứt lệnh.

Cái này có thể chọn tên lệnh tùy ý, không hạn chế số ký tự, do đó phải enter khi gõ xong tên lệnh.

http://www.mediafire...jl66q0n/pda.LSP


  • 1

#12 Ce.truonghai

Ce.truonghai

    Edu level: li2

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

Đã gửi 15 May 2014 - 08:54 AM

Cảm ơn bác Tot77 rất nhiều...để mình test lại lần nữa nha.


  • 0

#13 Ce.truonghai

Ce.truonghai

    Edu level: li2

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

Đã gửi 16 May 2014 - 10:01 AM

Dùng cái lisp dưới đây như sau:

1. Down về và chép đè lên lisp cũ trong thư mục startup suite.

2. Gõ pda, nhập tên lệnh xong thì enter.

3. Chọn layer, xong enter.

4. Tiếp tục mục 2 và 3. nhấn enter khi ở mục 2 để dứt lệnh.

Cái này có thể chọn tên lệnh tùy ý, không hạn chế số ký tự, do đó phải enter khi gõ xong tên lệnh.

http://www.mediafire...jl66q0n/pda.LSP

LISP làm việc rất tốt, cảm ơn bro rất nhiều...Mà cho mình nhờ chỉnh sửa thêm tý nữa cho sát với nhu cầu được ko?

- LISP pda đang là layon group layer, mình có thể làm thêm cái lisp pda khác (hoặc là thêm 1 lựa chọn trong 1 Lisp pda luôn) giống chức năng nhưng thay vì layoff tất cả và layon nhóm layer bằng freeze tất cả và thaw hóm layer được ko?

- Lệnh đang dùng là layon nhóm layer mình chọn, bro có thể chỉnh dùm mình là Freeze luôn tất cả layer không được chọn và chỉ Thaw group layer mình chọn chuyển layer hiện hành về layer 0. (Hoặc có thể chỉ dùm mình sửa phần nào trong lisp để tuỳ chọn là Layoff hay là Freeze thì cảm ơn nhiều)


  • 0

#14 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 17 May 2014 - 11:24 AM

Freeze là có luôn layeroff rồi, không cần làm 2 cái lisp khác nhau làm gì. Freeze mạnh hơn vì khi ở chế độ freeze mình không select được đối tượng đó. Bạn thay bằng lisp sau:

http://www.mediafire...Group_Layer.LSP


  • 1

#15 ntpaudi

ntpaudi

    Chưa sử dụng CAD

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

Đã gửi 17 May 2014 - 12:38 PM

cho e hỏi lỗi này với các bác, với cả cad không hiện tất cả các thanh công cụ131306_1.jpg


  • 0

#16 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 18 May 2014 - 08:30 PM

Mời bạn dung thử : http://www.cadviet.c...layerfilter.zip

Tên lệnh : IsoLF

Cũng còn nhiều vấn đề cần giải quyết, nhưng trước mắt cứ như thế đã :

- không biết tại sao Lisp không nhận group : 08_平詳プロット

15454_isolf_lsp.jpg

 

chú ý : trên hệ điều hành phiên bản tiếng Anh bị lỗi font ????

15454_isolf_en.png


Bài viết đã được chỉnh sửa nội dung bởi gia_bach: 03 June 2014 - 09:20 AM

  • 2

#17 Ce.truonghai

Ce.truonghai

    Edu level: li2

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

Đã gửi 19 May 2014 - 10:18 PM

Một lần nữa cảm ơn các bro rất nhiều, đặc biệt là cám ơn bro @Tot77 và bro @gia_bach, để mình test lại LISP nha. Thanks a lot ^^


  • 0

#18 Ce.truonghai

Ce.truonghai

    Edu level: li2

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

Đã gửi 23 May 2014 - 09:57 AM

Mời bạn dung thử : http://www.cadviet.c...layerfilter.zip

 

Cũng còn nhiều vấn đề cần giải quyết, nhưng trước mắt cứ như thế đã :

- không biết tại sao Lisp không nhận group : 08_平詳プロット

15454_isolf_lsp.jpg

 

chú ý : trên hệ điều hành phiên bản tiếng Anh bị lỗi font ????

15454_isolf_en.png

@gia bach cho mình hỏi lệnh của LIsp là gì vậy? Thanks


  • 0

#19 Ce.truonghai

Ce.truonghai

    Edu level: li2

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

Đã gửi 23 May 2014 - 01:57 PM

Freeze là có luôn layeroff rồi, không cần làm 2 cái lisp khác nhau làm gì. Freeze mạnh hơn vì khi ở chế độ freeze mình không select được đối tượng đó. Bạn thay bằng lisp sau:

http://www.mediafire...Group_Layer.LSP

LISP dùng rất tốt, không lỗi gì hết, đúng y yêu cầu của mình luôn. Cám ơn Tot77 rất nhiều. Chúc bạn nhiều may mắn.


  • 0