Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
duy267

[Nhờ giúp đỡ] Hàm ssname bị lỗi

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

Mình xài cad 2007. Khôn biết bị sao mà máy không nhận ra hàm ssname mặc dù các hàm ss khác vẫn nhận ra (ssnamex, ssget, sslength...). Vì vậy tất cả các lisp liên quan đến hàm ssname đều không thể xài được (trước đó vẫn xài bình thường). Nhờ anh em trên diễn đàn chỉ nguyên nhân và cách khắc phục. Xin cảm ơn.

Command: (setq ss (ssget))

Select objects: Specify opposite corner: 3 found

Select objects: <Selection set: 52>

Command: (setq ssname (ssname ss 0))

; error: bad function: <Entity name: 7efccb58>

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 xài cad 2007. Khôn biết bị sao mà máy không nhận ra hàm ssname mặc dù các hàm ss khác vẫn nhận ra (ssnamex, ssget, sslength...). Vì vậy tất cả các lisp liên quan đến hàm ssname đều không thể xài được (trước đó vẫn xài bình thường). Nhờ anh em trên diễn đàn chỉ nguyên nhân và cách khắc phục. Xin cảm ơn.

Command: (setq ss (ssget))

Select objects: Specify opposite corner: 3 found

Select objects: <Selection set: 52>

Command: (setq ssname (ssname ss 0))

; error: bad function: <Entity name: 7efccb58>

Mình xài cad 2007. Khôn biết bị sao mà máy không nhận ra hàm ssname mặc dù các hàm ss khác vẫn nhận ra (ssnamex, ssget, sslength...). Vì vậy tất cả các lisp liên quan đến hàm ssname đều không thể xài được (trước đó vẫn xài bình thường). Nhờ anh em trên diễn đàn chỉ nguyên nhân và cách khắc phục. Xin cảm ơn.

Command: (setq ss (ssget))

Select objects: Specify opposite corner: 3 found

Select objects: <Selection set: 52>

Command: (setq ssname (ssname ss 0))

; error: bad function: <Entity name: 7efccb58>

Liệu bạn có cài sẵn lisp nào khi cad khởi động, mà nó có chứa hàm do người dùng định nghĩa lại trùng tên ssname 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

Lý do : Bạn duy267 đặt tên biến ssname trùng với tên hàm ssname

Chạy với lần đầu tiên :

Biến ssname nhận kết quả là <Entity name: 7efccb58> -> Bạn đã thay đổi cấu trúc của hàm ssname

khi chạy với lần thứ 2 thì (ssname ss 0) -> sẽ báo lỗi ; error: bad function: <Entity name: 7efccb58>

 

Giai quyết : Tránh đặt trùng tên biến với tên hàm. Nếu bạn đã lỡ bị trường hợp này, bạn khởi động lại CAD nhé

  • 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

Đây là một lỗi sơ đẳng của người lập trình, và lỗi này ... thường có nhiều người mắc! :)

 

Không riêng gì AutoLisp, tất cả các ngôn ngữ lập trình khác cũng vậy, nó trao đổi với lập trình viên thông qua các từ khóa (key word). Nếu dùng Visual Lisp để viết thì bạn sẽ thấy: Khi gõ đúng từ khóa thì nó sẽ chuyển thành màu xanh da trời.

 

Đụng đến từ khóa là điều cấm kỵ, bạn chỉ được sử dụng mà không nên thay đổi nó dù bất kỳ lý do gì. Chẳng hạn, Autolisp định nghĩa sẵn số PI (cũng là tên từ khóa). Nếu bạn gán nó một số khác thì khi cần tính diện tích - chu vi đường tròn, bạn sẽ gặp nhiều rắc rố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

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  

×