Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
3 replies to this topic

#1 hhhhgggg

hhhhgggg

    biết dimedit

  • Members
  • PipPipPipPipPip
  • 393 Bài viết
Điểm đánh giá: 30 (tàm tạm)

Đã gửi 11 June 2009 - 06:50 AM

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)
)
  • 0
Hoàng Giang

#2 q288

q288

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 209 Bài viết
Điểm đánh giá: 164 (tàm tạm)

Đã gửi 11 June 2009 - 07:35 AM

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)
)


  • 0

#3 hhhhgggg

hhhhgggg

    biết dimedit

  • Members
  • PipPipPipPipPip
  • 393 Bài viết
Điểm đánh giá: 30 (tàm tạm)

Đã gửi 11 June 2009 - 07:46 AM

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 !!!!
  • 0
Hoàng Giang

#4 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 11 June 2009 - 08:32 AM

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