Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
OngNguyenVanHan

Mong mọi người giúp đỡ sửa lisp này ạ

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

Em có cái lisp sao chép text, hoán đổi text CopySwapTextV1-8.lsp của Leemac nhưng hiện tại em sao chép text vào khung tên block att thì khá lag và chậm, nhất là bản vẽ nặng thì lâu thôi rồi mong mọi người sửa lisp để tăng tốc độ cho nó. Em có gửi kèm lisp Matchprop+.LSP  có lệnh Q1 sao chép rất nhanh nhưng nó chỉ áp dụng vào text att và không liên tục. Mong mọi người giúp đỡ, không rõ yêu cầu mong mọi người cmt để em giải thích thêmimage.thumb.png.fc5aab7fb9824f76c94f7901f16d8915.pngimage.thumb.png.6b86a2a061e9a3b0a800356826dc1e6d.png

Drawing1.dwg

image.png

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

Chỉ truyền nội dung Text trong bản vẽ vào Text khung tên bạn nên dùng 2 lần hàm nentsel cho đối tượng nguồn và đích. Lấy mã Dxf 1 để đọc TextString như lệnh q1 đó là được.

Tuy nhiên nó chỉ có hiệu quả với Dtext và att. Với Mtext thì khó lấy TextString vì nó là định dạng paragraph.

Còn vấn đề liên tục không cần thiết lắm, mỗi lần mình làm vài lượt thôi.

 

  • 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
5 giờ trước, limfx đã nói:

LIsp này so với lệnh MATCHPROP có gì hay hơn bạn?

Lisp của Leemac nó giữ Text nguồn và chuyền liên tục vào text dích ở bất cứ dạng gì, nó vẫn truyền vào block att được nhưng lâu và lag, còn lisp Matchprop+.LSP thì chuyên về block att, ko gán được text mtext thường cũng như ko gán liên tục được

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
4 giờ trước, cuongtk2 đã nói:

Chỉ truyền nội dung Text trong bản vẽ vào Text khung tên bạn nên dùng 2 lần hàm nentsel cho đối tượng nguồn và đích. Lấy mã Dxf 1 để đọc TextString như lệnh q1 đó là được.

Tuy nhiên nó chỉ có hiệu quả với Dtext và att. Với Mtext thì khó lấy TextString vì nó là định dạng paragraph.

Còn vấn đề liên tục không cần thiết lắm, mỗi lần mình làm vài lượt thôi.

 

Bác giúp em sửa code của leemac với ạ, em ko biết gì về code cả

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
1 giờ} trướ}c, OngNguyenVanHan đã nói:

Bác giúp em sửa code của leemac với ạ, em ko biết gì về code cả

 

Nếu bạn cần Tools cho quá trình sủa khung tên Block Attributes thì mình có Tools như video dưới.

 

Nếu đúng nhu cầu, bạn liên hệ mình qua Zalo 0986370918 để biết chi tiêt  hơn.

https://www.youtube.com/watch?v=9Bn3o1ciIyM&t=1s

P/s: Tools có tốn cafe nhé

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 31/7/2023 tại 20:41, OngNguyenVanHan đã nói:

Em có cái lisp sao chép text, hoán đổi text CopySwapTextV1-8.lsp của Leemac nhưng hiện tại em sao chép text vào khung tên block att thì khá lag và chậm, nhất là bản vẽ nặng thì lâu thôi rồi mong mọi người sửa lisp để tăng tốc độ cho nó. Em có gửi kèm lisp Matchprop+.LSP  có lệnh Q1 sao chép rất nhanh nhưng nó chỉ áp dụng vào text att và không liên tục. Mong mọi người giúp đỡ, không rõ yêu cầu mong mọi người cmt để em giải thích thêm

Lisp này hình như của mình viết, mục đích là copy giá trị từ text, att, dim, ... sang text, att, dim khác thôi, ko copy định dạng. Lisp của Leemac ngoài lệnh Swap ra thì cũng tương tự, hơn chỗ có thể chọn nhiều đối tượng paste đến. Nhưng mình chưa hiểu cái "không liên tục" của bạn là như nào, mình đoán là copy 1 giá trị từ 1 text sang 1 att nào đó trong block bản vẽ (ví dụ MABANVE), và có thể chọn nhiều khung cùng 1 lúc, nếu vậy thì lisp của Leemac cũng đâu có làm được ??? Tại sao 1 ý phức tạp như vậy mà bạn có thể nói trong 3 chữ "không liên tục" được ???

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
55 phút trước, Duong Nhat Duy đã nói:

Lisp này hình như của mình viết, mục đích là copy giá trị từ text, att, dim, ... sang text, att, dim khác thôi, ko copy định dạng. Lisp của Leemac ngoài lệnh Swap ra thì cũng tương tự, hơn chỗ có thể chọn nhiều đối tượng paste đến. Nhưng mình chưa hiểu cái "không liên tục" của bạn là như nào, mình đoán là copy 1 giá trị từ 1 text sang 1 att nào đó trong block bản vẽ (ví dụ MABANVE), và có thể chọn nhiều khung cùng 1 lúc, nếu vậy thì lisp của Leemac cũng đâu có làm được ??? Tại sao 1 ý phức tạp như vậy mà bạn có thể nói trong 3 chữ "không liên tục" được ???

chính là cái paste text đích liên tục đó anh, nó giữ định dạng gốc và giữ nó gán liên tục vào chỗ khác, hiện tại nó gán vào block khá lag so với lisp của anh viết

  • 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
58 phút trước, OngNguyenVanHan đã nói:

chính là cái paste text đích liên tục đó anh, nó giữ định dạng gốc và giữ nó gán liên tục vào chỗ khác, hiện tại nó gán vào block khá lag so với lisp của anh viết

Sửa theo ý bạn thì đây: Matchprop+.lsp

Quan điểm của mình thế này:

- Nếu bạn copy 1 text ra 1 2 hay 3 cái att thì cứ Q1 gối nhau, mất thêm 1 lần enter với 1 lần click chuột

- Nếu bạn copy 1 text ra 10 20 cái att thì sao không chọn hết block xong sửa trực tiếp trong Ctrl+1, nhanh hơn gấp 10 lần dùng lisp

  • Like 1
  • 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
8 giờ trước, Duong Nhat Duy đã nói:

Sửa theo ý bạn thì đây: Matchprop+.lsp

Quan điểm của mình thế này:

- Nếu bạn copy 1 text ra 1 2 hay 3 cái att thì cứ Q1 gối nhau, mất thêm 1 lần enter với 1 lần click chuột

- Nếu bạn copy 1 text ra 10 20 cái att thì sao không chọn hết block xong sửa trực tiếp trong Ctrl+1, nhanh hơn gấp 10 lần dùng lisp

thanks anh Duy, anh sửa giúp em thêm cái lisp của Leemac gán vào block att nhanh như lisp của anh được không ạ

  • 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
13 giờ trước, OngNguyenVanHan đã nói:

thanks anh Duy, anh sửa giúp em thêm cái lisp của Leemac gán vào block att nhanh như lisp của anh được không ạ

Cái này mình chịu nhé, trình độ của mình chưa đủ để voọc lisp của cụ Leemac :))

  • 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

Trong lisp có sử dụng hàm vla-regen (với trường hợp đối tượng được truyền nằm trong block), pick phát nào nó regen phát đó dẫn đến lag nếu file nặng, chỉnh sửa 1 chút ở đó là được.

  • Vote tăng 2

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
2 phút trước, NTHAHT đã nói:

Trong lisp có sử dụng hàm vla-regen (với trường hợp đối tượng được truyền nằm trong block), pick phát nào nó regen phát đó dẫn đến lag nếu file nặng, chỉnh sửa 1 chút ở đó là được.

Lisp OCA của cụ nào ngày xưa cũng thế để hàm regen, pick liên tục bản vẽ nặng mệt muốn chết :))

  • 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
6 giờ trước, NTHAHT đã nói:

Trong lisp có sử dụng hàm vla-regen (với trường hợp đối tượng được truyền nằm trong block), pick phát nào nó regen phát đó dẫn đến lag nếu file nặng, chỉnh sửa 1 chút ở đó là được.

 

6 giờ trước, tannguyen291 đã nói:

Lisp OCA của cụ nào ngày xưa cũng thế để hàm regen, pick liên tục bản vẽ nặng mệt muốn chết :))

 

1 giờ trước, ketxu đã nói:

Không có CAD ở đây nên mình k test được. Đẩy cái Regen ra hàm main, bạn thử test xem sao. 

CopySwapTextV1-8.lsp

6 giờ trước, NTHAHT đã nói:

ng hợp đối tượng được truyền nằm tro

Thanks các anh đã tìm ra vấn đề, anh ketxu sửa lại đã nhanh hơn nhưng khi nhấn enter kết thúc lệnh ctx nó vẫn còn hàm regen lên vẫn lag, mong anh sửa nốt giúp em ở lệnh ctx và lệnh stx khi kết thúc lệnh nữa ạ.

  • 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 nhớ vụ regen này xưa mình cũng bị sau giải quyết bằng cách không regen mà rung cái đối tượng đã sửa 1 phát nghĩa là move nó khoảng cách bằng 0 thì nó tự cập nhật giá trị thì phải. (lâu quá nhớ mang máng thế)

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
2 giờ trước, duy782006 đã nói:

Mình nhớ vụ regen này xưa mình cũng bị sau giải quyết bằng cách không regen mà rung cái đối tượng đã sửa 1 phát nghĩa là move nó khoảng cách bằng 0 thì nó tự cập nhật giá trị thì phải. (lâu quá nhớ mang máng thế)

em không làm như bác nếu là đối tượng field thì dùng "_.updatefield"

Các đối tượng khác có thể dụng entupd sẽ đạt hiệu quả mong muốn. 

Move thì ảo thật chưa nghĩ đên luô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
Vào lúc 2/8/2023 tại 11:19, Duong Nhat Duy đã nói:

Sửa theo ý bạn thì đây: Matchprop+.lsp

Quan điểm của mình thế này:

- Nếu bạn copy 1 text ra 1 2 hay 3 cái att thì cứ Q1 gối nhau, mất thêm 1 lần enter với 1 lần click chuột

- Nếu bạn copy 1 text ra 10 20 cái att thì sao không chọn hết block xong sửa trực tiếp trong Ctrl+1, nhanh hơn gấp 10 lần dùng lisp

anh có lệnh Q1 liên tục như của cụ leemac với lệnh hoán đổi text giống cụ leemac ko anh

  • 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
7 giờ trước, tannguyen291 đã nói:

Bạn thử cân nhắc cách của mình nhé. không cần dùng lisp nhưng có lẽ sẽ ưu việt hơn đấy. :))

image.png.9257a40af562884903b22d4b4ca575ab.png

 

Em cảm ơn anh đã góp ý, để em tìm hiểu cách của anh

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  

×