Chuyển đến nội dung
Diễn đàn CADViet
lp_hai

lấy biến bằng giá trị của text

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

em muốn viết một cái lisp cộng các số lại với nhau. hee. Nếu nhờ các pac viết hộ thì quá đơn giản rồi. heee. em muốn tự mình tìm tòi một chút. các pro gợi ý cho em nhé!. cảm ơn nhiều lắm

các pro chỉ jùm em hàm nào để mình lấy giá trị của dòng text (text là một dãy số).

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
em muốn viết một cái lisp cộng các số lại với nhau. hee. Nếu nhờ các pac viết hộ thì quá đơn giản rồi. heee. em muốn tự mình tìm tòi một chút. các pro gợi ý cho em nhé!. cảm ơn nhiều lắm

các pro chỉ jùm em hàm nào để mình lấy giá trị của dòng text (text là một dãy số).

lấy giá trị của dòng text :

(alert (setq bien (cdr(assoc 1 (entget(car(entsel "\n Chon Text :")))))))

 

->> Kết quả năm ở biến : bien

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

thnks Tue_NV

nhưng mà biến đó là "nội dung text". em muốn chuyển nó thành giá trị số thực (để + -) thì làm sao

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
thnks Tue_NV

nhưng mà biến đó là "nội dung text". em muốn chuyển nó thành giá trị số thực (để + -) thì làm sao

Bạn sử dụng hàm atof để chuyển chuỗi string thành số thực Real

Ví dụ :

(atof "50.2")

-> Return 50.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
Bạn sử dụng hàm atof để chuyển chuỗi string thành số thực Real

Ví dụ :

(atof "50.2")

-> Return 50.2

 

OK. Rồi

mình làm thử cộng 2 số thì ok. mình muốn chọn một lần nhiều số, nhưng cái vòng lập ko biết bị sai chổ nào ma nó báo là sai biến. Tue_NV xem rồi sửa jùm nha!

 

(defun c:congso()

(setq ssdt (ssget))

(defun gtri1(ent)

(setq

so (atof(cdr(assoc 1 ent))))

)

(setq

sodoituong (sslength ssdt)

index 0

gttong 0.0

)

(repeat sodoituong

(setq

ent_ht (ssname ssdt index)

index (1+ index)

so (gtri1 ent_ht)

gttong (+ gttong so)

)

)

(princ gttong)

(princ)

)

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
OK. Rồi

mình làm thử cộng 2 số thì ok. mình muốn chọn một lần nhiều số, nhưng cái vòng lập ko biết bị sai chổ nào ma nó báo là sai biến. Tue_NV xem rồi sửa jùm nha!

 

(defun c:congso()

(setq ssdt (ssget))

(defun gtri1(ent)

(setq

so (atof(cdr(assoc 1 ent))))

)

(setq

sodoituong (sslength ssdt)

index 0

gttong 0.0

)

(repeat sodoituong

(setq

ent_ht (ssname ssdt index)

index (1+ index)

so (gtri1 ent_ht)

gttong (+ gttong so)

)

)

(princ gttong)

(princ)

)

Vô nhà, không có khoá thì làm sao "mở cửa" mà "lấy đồ" :rolleyes:

Bạn thay dòng này :

(defun gtri1(ent)

(setq

so (atof(cdr(assoc 1 ent))))

)

bằng dòng này :

(defun gtri1(ent)

(setq

so (atof(cdr(assoc 1 (entget ent)))))

)

 

Và nên thêm vào chức năng lọc khi chọn đối tượng :

Bạn thay dòng này :

(setq ssdt (ssget))

bằng dòng này :

(setq ssdt (ssget '((0 . "TEXT"))))

  • 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
Vô nhà, không có khoá thì làm sao "mở cửa" mà "lấy đồ" :rolleyes:

Bạn thay dòng này :

(defun gtri1(ent)

(setq

so (atof(cdr(assoc 1 ent))))

)

bằng dòng này :

(defun gtri1(ent)

(setq

so (atof(cdr(assoc 1 (entget ent)))))

)

 

Và nên thêm vào chức năng lọc khi chọn đối tượng :

Bạn thay dòng này :

(setq ssdt (ssget))

bằng dòng này :

(setq ssdt (ssget '((0 . "TEXT"))))

hehee. cảm ơn nhiều. Ok rồ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

Mình rất mong bạn Tue_NV giúp mình fun điểm lên bản vẽ chấp nhận các thông số SST X Y Z Code được phân biệt nhau bởi cả dấu " " (dấu cách) , dấu tab, dấu phẩy....

Nếu bạn lập được 1 hàm tách xâu phân biệt được các thông số đó thì chèn các ký hiệu trắc địa vào bản vẽ là bình thường.

Mình đang vướng mắc vấn đề đó.

Mong bạn giúp đỡ mì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

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

×