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

Lỗi file lisp VLAX-ENAME -> VLA-OBJECT

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

Các bạn cho mình hỏi mình bị lỗi này thì xử lý như thế nào

Mình load file lisp trong cad lên, đánh lệnh lisp, chọn đối tượng xong thì enter ra kết quả thì nó hiện như thế này và không có kết quả

image.png.926a2ec604af99f02cfd4f40f3ddaa0c.png

 

Trường hợp này thì xử lý như thế nào cho có kết quả, mình đã thử những file khác thì cũng bị như vậy

Mình dùng lisp tính tổng chiều dài đoạn thẳng và xuất ra text kết quả trên cad 2016.

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

Thông thường là "đầu" code lisp.

Nhưng không phải là 

(Vl-load-com) (defun c:abc (xyz)....)

Mà là (defun c:abc (xyz) ...(vl-load-com))

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

Thông thường là "đầu" code lisp.

Nhưng không phải là 

(Vl-load-com) (defun c:abc (xyz)....)

Mà là (defun c:abc (xyz) ...(vl-load-com))

Danh Cong nhầm rồi đấy 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
20 giờ trước, Doan Van Ha đã nói:

Danh Cong nhầm rồi đấy nhé!

Không biết cháu hiểu nhầm chỗ nào thế  bác nhỉ :P bác chỉ giùm 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
7 phút trước, Danh Cong đã nói:

Không biết cháu hiểu nhầm chỗ nào thế  bác nhỉ :P bác chỉ giùm với @@

Trên 1 dwg, nếu hàm vl-load-com đã được load 1 lần rồi thì nó sẽ có hiệu lực với mọi lisp chạy trên bản vẽ đó. Vì vậy: đặt vl-load-com ở đầu hay cuối lisp hay trong lisp đều OK cả. Đặt ở đầu hoặc cuối thì chỉ load hàm đó 1 lần khi load lisp, đặt ở trong thì mỗi lần dùng lệnh đều phải load (thừ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
1 giờ trước, kienxd04 đã nói:

nhưng sao mình đặt ở đầu vẫn ko được vậy bạn

Ai biết bạn thêm như thế nào đâu. Đưa cái lisp đã thêm lên để dòm mặt mũi mới phán được chứ.

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, Doan Van Ha đã nói:

Lisp chạy ok.

Lisp này có vấn đề bác ạ. Chính xác là bản cuối lisp này tải về là do cháu sửa ( do có 1 số chỗ nên cháu nhận ra ).

Vấn đề ở đây bao gồm phiên bản cad sử dụng và loại hàm (Vla-get-...) để lấy giá trị chiều dài:

+ Phiên bản:  Khi xài cad 2012 thì lệnh "Lengtheng" + "Perimeter" sử dụng tốt. Tuy nhiên thì khi dùng cad 2015 thì Cad bỏ món "Perimeter"  nên ko xài được .

+ Hàm (Vla-get-length)  :  Cad 2012 không dùng được với đối tượng CRICLE, ARC, ELIP nên gây lỗi.

 

Chủ thớt thay :

(setq tot_len (+ tot_len (vla-get-Length (vlax-ename->vla-object e_name)))) 

bằng 

(setq tot_len (+ tot_len (vlax-curve-getdistatparam e_name (vlax-curve-getendparam e_name))))

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

Cảm ơn bạn

Sau khi mình làm như bạn thì nó báo như thế này và cũng ko được

image.png.e49e2c842d189c5b5d490936d7e0430c.png

Cài lại cad, hoặc thử phiên bản khác đi bạn. Mọi người dùng được nên ko biết lý do gì bạn dùng bị lỗ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

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  

×