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

Nhờ Các Cao Thủ Giúp Lisp!

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

Có cách để lấy hai hoặc nhiều số 0 sau dấu phẩy của số thập phân trong autolisp không. Ví dụ mình có câu lệnh 

(atof (cdr (assoc 1 (entget (car (entsel "\nChọn cao độ tim: ")))))). Giá trị cao độ được chọn là 186.000m nhưng giá trị trả về chỉ là 186.0. Mong các bác cao thủ chỉ giúp. Thanks.

 

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

 

Khi em chạy lệnh thì được giá trị như dưới
(atof (cdr (assoc 1 (entget (car (entsel "\nChon cao do tim: "))))))
186.0
Ý em muốn hỏi có thể lồng các hàm vào nhau như thế nào để lấy được giá trị: 186.00
Nhờ Bác Doan Van Ha chỉ giáo.

 

(rtos (atof (cdr (assoc 1 (entget (car (entsel "\nChon cao do tim: ")))))) 2 2)

  • 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

Khi em đánh câu lệnh thì sẽ trả về giá trị như sau:

$ (atof (cdr (assoc 1 (entget (car (entsel "\nChọn cao độ tim: "))))))
186.0

Có cách nào lồng các hàm vào nhau để lấy được giá trị: 186.00 không bác Đoàn Văn Hà?

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

Khi em đánh câu lệnh thì sẽ trả về giá trị như sau:

$ (atof (cdr (assoc 1 (entget (car (entsel "\nChọn cao độ tim: "))))))
186.0

Có cách nào lồng các hàm vào nhau để lấy được giá trị: 186.00 không bác Đoàn Văn Hà?

Tôi vừa trả lời ở trên

  • 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

 

Khi em chạy dòng lệnh như của bác thì trả về giá trị: (rtos (atof (cdr (assoc 1 (entget (car (entsel "\nChọn cao độ tim: ")))))) 2 2)

 là: 186
Trả về chuỗi bác ạ.

 

Ờ, chuỗi. Khi là chuỗi mới có ý nghĩa, chứ trả về real thì 2.0 và 2.00 khác nhau điều gì mà bạn phải cầ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ật ra thì không khác nhau bác ạ. Nhưng có em lisp tính cao độ khi pick tính các điểm cao độ thì nó thường làm tròn số. Ví dụ nếu là cao độ 186.00 thì khi pick kết quả sẽ là 186 nên khi trình bày trong bản vẽ sẽ không được đẹp. Đó là lý do em cần chứ về bản chất thì không có gì khác nhau ạ.

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ật ra thì không khác nhau bác ạ. Nhưng có em lisp tính cao độ khi pick tính các điểm cao độ thì nó thường làm tròn số. Ví dụ nếu là cao độ 186.00 thì khi pick kết quả sẽ là 186 nên khi trình bày trong bản vẽ sẽ không được đẹp. Đó là lý do em cần chứ về bản chất thì không có gì khác nhau ạ.

 

Bác #DoanVanHa  trả lời đúng cho bạn rồi. Vấn đề là bạn chưa hiểu về lisp nên ko lường được kết quả?

Nghe bạn trình bày thì có vẻ bạn định tạo 1 kết quả ở dạng text có đúng không.

 

Vậy gõ thử vào cad: "DIMZIN" nhập giá trị 0. Rồi thử lại lisp của bạn xem thế nào 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

Bạn cứ hiểu nôm na như sau:

 

0   : Không làm tròn số.

4   : loại bỏ số 0 ở đầu:                    Ví dụ 0.500  thành   .500

8   : loại bỏ số 0 ở cuối.                    Ví dụ 0.500 thành    0.5

12  : loại bỏ số 0 ở cả đầu lẫn cuối:   Ví dụ 0.500 thành     .5

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

Các bác ơi có đoạn autolisp nào chia được đoạn thẳng ra thành nhiều đoạn có chiều dài khác nhau không (Các đoan thẳng được chia được giới hạn bởi hai đường thằng cắt ngang đoạn thằng đó). Đây là file hình ảnh mình minh họa trong autocad https://drive.google.com/drive/recent

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

các bác cho em hỏi lisp cad dùng trong những ngành công việc nào ạ , vì e chưa thạo cho lắm mong các bác chỉ giúp ... vd: với ngành công nghiệp xưởng có cần thiết phải dùng ko ạ 

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  

×