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

chèn block từ 1 file cad khác

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

Chào các bạn,

Mình biết ABC về lisp nên có chút khó khăn muốn nhờ các bạn xử lý giúp:

Mình muốn viết 1 lisp chèn block từ 1 file có trước:

- Ví dụ file là "C:\thu vien 1.dwg". Trong file có các block đã tao sẵn là BL01, BL02, BL03

- Câu lệnh mong muốn giống tên block là: BL01, BL02  và BL03.

Chân thành nhờ các bạn giúp đỡ. Xin cám ơn các bạn!

 

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

Chào các bạn,

Mình biết ABC về lisp nên có chút khó khăn muốn nhờ các bạn xử lý giúp:

Mình muốn viết 1 lisp chèn block từ 1 file có trước:

- Ví dụ file là "C:\thu vien 1.dwg". Trong file có các block đã tao sẵn là BL01, BL02, BL03

- Câu lệnh mong muốn giống tên block là: BL01, BL02  và BL03.

Chân thành nhờ các bạn giúp đỡ. Xin cám ơn các bạn!

 

+ Lấy toàn bộ block trong file DCBLOCK từ đường dẫn C:/AUTOLISP/

(command ".-insert" "C:/AUTOLISP/DCBLOCK.DWG" (list 0 0) "1" "1" "0")

+ Chú ý đơn vị giữa file gốc và file hiện hành đồng bộ để đảm bảo khi chèn kích thước block như bình mong muốn, thay đổi đơn cho bản vẽ bằng lệnh:

(setvar "insunits" 0)

Các số tương ứng đơn vị: 

0 - Unilless

4 - mm

6 - mét

.......... bạn tìm hiểu thêm

hoặc thay đổi tỷ lệ block trực tiếp khi chèn thì tùy b

Còn chèn từng cái thì m không biết nha ^^

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ới cad 2021 sẽ có lệnh  -INSERTCONTENT, dùng lisp với lệnh này theo mẫu (ví dụ với block không có attribute)

(setq path "c:/cadtool/thuvien/ctkt.dwg"
      block "doc mai"
      block1 "mbtc1"
      pt (getpoint "\nDiem chen"))
(command "-INSERTCONTENT" path block1 pt 1 1 0)

 

 

  • 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
Vào lúc 3/4/2023 tại 13:25, doductiep đã nói:

+ Lấy toàn bộ block trong file DCBLOCK từ đường dẫn C:/AUTOLISP/

(command ".-insert" "C:/AUTOLISP/DCBLOCK.DWG" (list 0 0) "1" "1" "0")

+ Chú ý đơn vị giữa file gốc và file hiện hành đồng bộ để đảm bảo khi chèn kích thước block như bình mong muốn, thay đổi đơn cho bản vẽ bằng lệnh:

(setvar "insunits" 0)

Các số tương ứng đơn vị: 

0 - Unilless

4 - mm

6 - mét

.......... bạn tìm hiểu thêm

hoặc thay đổi tỷ lệ block trực tiếp khi chèn thì tùy b

Còn chèn từng cái thì m không biết nha ^^

Thấy trên diễn đàn nước ngoài họ dùng cách này.

Đầu tiên là Insert cả file vào như bạn nói.

sau đó lại (Command "._erase" "l" "") để xoá cái vừa chèn vào

Khi đó trong file của mình chưa PU thì vẫn chứa các block của DCBLOCK.DWG

Mình chỉ cần lệnh Insert bình thường thôi.

Nếu file DCBLOCK.DWG mà nặng, nhiều block thì sẽ rác cho file gốc.

Kết thúc là Purge những block thừa đi. Lisp này lâu hay nhanh là ở khâu cuối này. File càng nhiều block thì lisp chạy càng lâu.

  • 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
Vào lúc 3/4/2023 tại 15:48, cuongtk2 đã nói:

Với cad 2021 sẽ có lệnh  -INSERTCONTENT, dùng lisp với lệnh này theo mẫu (ví dụ với block không có attribute)

(setq path "c:/cadtool/thuvien/ctkt.dwg"
      block "doc mai"
      block1 "mbtc1"
      pt (getpoint "\nDiem chen"))
(command "-INSERTCONTENT" path block1 pt 1 1 0)

 

 

Cám ơn bạn rất nhiều! Từ gợi ý của bạn mình đã tạo dc lisp để dùng.

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  

×