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

Giúp em Thêm dòng lệnh ?

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

Dưới đây là Lisp cộng thêm 1 giá trị vào Text rùi ghi kết quả sang 1 text khác trên bản vẽ. Em muốn thêm dòng lệnh hiển thị giá trị mình thêm của lần trước khi mình thực hiện lệnh lần sau vào để khi mình lặp lại lệnh thì ko phải đánh lại giá trị lần trước mình thêm vào nữa.

dạng như sau :

chạy lần 1

 

Command: add

select text number: (Chọn text cộng thêm)

value add<0>: 50

Select Text to results: (Chọn text gán kết quả)

 

chạy lần 2

Command: add

select text number: (Chọn text cộng thêm)

value add<50>: (Ấn enter, ko phải nhập lại giá trị 50)

Select Text to results: (Chọn text gán kết quả)

 

CODE

 

;;;=========== Cong Text voi so =======

(defun c:add()

(setvar "CMDECHO" 0)

 

;Lay gia tri cua text thu nhat:

(setq s (entget (car (entsel "\n Select Text number: "))))

(setq otext (assoc 1 s))

(setq ot (cdr otext))

(setq ot (read (substr ot 1 )))

 

;Lay gia tri cua text thu hai:

(command "luprec" pre)

(setq ot1 (getreal "\nValue Add:"))

 

(setq giatri (entget (car (entsel "\n Select Text to results: "))))

(command "luprec" "2")

(setq gia (assoc 1 giatri))

;(setq gia (rtos gia 2 2))

(setq nt1 (cons 1 (rtos (+ ot ot1) )))

(setq giatri (subst nt1 gia giatri))

(entmod giatri)

(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
Dưới đây là Lisp cộng thêm 1 giá trị vào Text rùi ghi kết quả sang 1 text khác trên bản vẽ. Em muốn thêm dòng lệnh hiển thị giá trị mình thêm của lần trước khi mình thực hiện lệnh lần sau vào để khi mình lặp lại lệnh thì ko phải đánh lại giá trị lần trước mình thêm vào nữa.

dạng như sau :

Sửa lại như sau: Bạn copy trực tiếp các dòng dưới đây vì hình như download file add.lsp thiếu mất vài chữ.

Nhờ mod sửa dùm cái vụ thiếu chữ này.

(defun c:add ()
 (setvar "CMDECHO" 0)
				;Lay gia tri cua text thu nhat:
 (setq s (entget (car (entsel "\n Select Text number: "))))
 (setq otext (assoc 1 s))
 (setq ot (cdr otext))
 (setq ot (read (substr ot 1))
          ot2 nil)

				;Lay gia tri cua text thu hai:
 (command "luprec" pre)
 (if ot1 (setq ot2 (getreal (strcat "\nValue Add <" (rtos ot1) ">:")))
   (setq ot1 (getreal "\nValue Add :" )))
 (if ot2 (setq ot1 ot2))

 (setq giatri (entget (car (entsel "\n Select Text to results: "))))
 (command "luprec" "2")
 (setq gia (assoc 1 giatri))
				;(setq gia (rtos gia 2 2))
 (setq nt1 (cons 1 (rtos (+ ot ot1))))
 (setq giatri (subst nt1 gia giatri))
 (entmod giatri)
 (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
Sửa lại như sau: Bạn copy trực tiếp các dòng dưới đây vì hình như download file add.lsp thiếu mất vài chữ.

Nhờ mod sửa dùm cái vụ thiếu chữ này.

(defun c:add ()
 (setvar "CMDECHO" 0)
				;Lay gia tri cua text thu nhat:
 (setq s (entget (car (entsel "\n Select Text number: "))))
 (setq otext (assoc 1 s))
 (setq ot (cdr otext))
 (setq ot (read (substr ot 1))
          ot2 nil)

				;Lay gia tri cua text thu hai:
 (command "luprec" pre)
 (if ot1 (setq ot2 (getreal (strcat "\nValue Add <" (rtos ot1) ">:")))
   (setq ot1 (getreal "\nValue Add :" )))
 (if ot2 (setq ot1 ot2))

 (setq giatri (entget (car (entsel "\n Select Text to results: "))))
 (command "luprec" "2")
 (setq gia (assoc 1 giatri))
				;(setq gia (rtos gia 2 2))
 (setq nt1 (cons 1 (rtos (+ ot ot1))))
 (setq giatri (subst nt1 gia giatri))
 (entmod giatri)
 (princ)
)

ok ! 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
Dưới đây là Lisp cộng thêm 1 giá trị vào Text rùi ghi kết quả sang 1 text khác trên bản vẽ. Em muốn thêm dòng lệnh hiển thị giá trị mình thêm của lần trước khi mình thực hiện lệnh lần sau vào để khi mình lặp lại lệnh thì ko phải đánh lại giá trị lần trước mình thêm vào nữa.

Đây là kỹ thuật mang tính "kinh điển"

Bạn có thể đọc bài viết này của bác ssg để có thể tự thêm mã lệnh cho mình trong những trường hợp khác.

Mong rằng bạn hiểu và có thể tự tay xây dựng được cái này trong những bài toán khác

Bài viết đó nằm ở đây : Nghệ thuật lập trình Lisp. Bài viết số 14

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  

×