Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
7 replies to this topic

#1 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 04 June 2010 - 09:04 AM

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ố).
  • 0
Hình đã gửi

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 04 June 2010 - 09:20 AM

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
  • 0

#3 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 04 June 2010 - 10:19 AM

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
  • 0
Hình đã gửi

#4 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 04 June 2010 - 10:22 AM

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
  • 1

#5 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 04 June 2010 - 12:38 PM

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)
)
  • 0
Hình đã gửi

#6 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 04 June 2010 - 02:45 PM

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"))))
  • 1

#7 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 04 June 2010 - 03:34 PM

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
  • 0
Hình đã gửi

#8 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 995 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 13 June 2010 - 12:00 PM

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
  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn