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

[Giúp đỡ] Tăng tốc Insert block

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

Hiện tại mình đang xử lý insert block Att (cả ngàn cái) từ thư mục có sẳn, nếu sử dụng hàm 

(command "INSERT" (strcat "C:" "\\CaodoSN") giaodiem 1 1 0 "" "" "")

thì tốc độ xử lý rất là chậm 

mọi người ai biết cách nào có thể tăng tốc độ xin trợ giúp

Cám ơn mọi ngườ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

Bác thử cái này coi sao:

Có dòng code này của bác lp_hai: (entmake (list (cons 0 "insert") (cons 2 bl) (cons 10 pm)))

Trong https://www.cadviet.com/forum/topic/169937-xin-giúp-đỡ-lisp-chèn-1-block-vào-tâm-của-nhiều-hình-chữ-nhật/

Tất nhiên sẽ phải điều chỉnh sao cho dxf phù hợp .

 

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

insert tất cả các block trong thư mục (file trong thư mục) vào 1 file có sẵn phải ko bạn?

có sự hiểu nhầm (chỉ 1 bock mà insert nhiều lần) nên nó chạy rất chậ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
13 phút trước, Danh Cong đã nói:

Bác thử cái này coi sao:

Có dòng code này của bác lp_hai: (entmake (list (cons 0 "insert") (cons 2 bl) (cons 10 pm)))

Trong https://www.cadviet.com/forum/topic/169937-xin-giúp-đỡ-lisp-chèn-1-block-vào-tâm-của-nhiều-hình-chữ-nhật/

Tất nhiên sẽ phải điều chỉnh sao cho dxf phù hợp .

 

ok để nghiên cứu thêm vì nó là block ATT

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 dùng hàm vla-InsertBlock tốc độ sẽ tăng lên rất nhiều, chứ dùng command ẹ lắm.

Chú ý các tham số để đặt cho đúng.

1 ví dụ:

(setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) acspc (vlax-get-property acdoc (if (= 1 (getvar 'CVPORT)) 'paperspace 'modelspace)))
 (vla-InsertBlock acspc (vlax-3d-point '(0 0)) block tlchenX tlchenY 1 0)

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

Bạn dùng hàm vla-InsertBlock tốc độ sẽ tăng lên rất nhiều, chứ dùng command ẹ lắm.

Chú ý các tham số để đặt cho đúng.

1 ví dụ:

(setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) acspc (vlax-get-property acdoc (if (= 1 (getvar 'CVPORT)) 'paperspace 'modelspace)))
 (vla-InsertBlock acspc (vlax-3d-point '(0 0)) block tlchenX tlchenY 1 0)

Cám ơn bác Hạ để e xem thế nào hỏi tiếp

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 8/10/2018 tại 12:48, huunhantvxdts đã nói:

ok để nghiên cứu thêm vì nó là block ATT

Mình thấy dùng vla-InsertBlock là OK nhất nhưng nếu bạn muốn dùng entmake thì bạn phải thêm 1 lệnh "ATTSYNC" ở cuối nữa (nhưng phải đảm bảo rằng lệnh này ko phá hỏng những block đang có sẵn trong bản vẽ). Chắc 2 cách này nhanh như nhau, entmake có thể chậm hơn chút xíu vì mất thêm 1 tẹo time ATTSYNC.

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

Mình thấy dùng vla-InsertBlock là OK nhất nhưng nếu bạn muốn dùng entmake thì bạn phải thêm 1 lệnh "ATTSYNC" ở cuối nữa (nhưng phải đảm bảo rằng lệnh này ko phá hỏng những block đang có sẵn trong bản vẽ). Chắc 2 cách này nhanh như nhau, entmake có thể chậm hơn chút xíu vì mất thêm 1 tẹo time ATTSYNC.

đã ok rồi bạ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

Mình mem mới vẫn chưa hiểu rõ về autolisp cho lắm nhưng cho mình hỏi có thể InsertBlock theo lệnh được không? VD mình tạo ra 1 foder chứa rất nhiều block và đặt tên theo tên: block1,block2,block3,block4.....khi cần InsertBock mình gõ lệnh Block1 enter,block2 enter....thì block sẽ Insert vào bản vẽ theo điểm pick chuột,nếu được mong các bác giúp đỡ,thank !

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  

×