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

[ Nhờ sửa ] Lập lại một phép tinh theo yêu cầu

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

(defun c:TINH()

(vl-load-com)
(if (not ptinh) (setq ptinh "+"))
(if (not ssle) (setq ssle 0))
;;-----------------------
(initget "+ - * / ")
(setq ptinh1 (getkword (strcat "\nChon phep tinh ( + - * /  ) <" ptinh "> :"))
ssle1 (getint (strcat "\nSo so le <" (itoa ssle) ">: ")))
(if ptinh1 (setq ptinh ptinh1))
(if ssle1 (setq ssle ssle1))


;;---------------------------------
(cond 
;----------
 
	((= ptinh "+") ;;; cong
	(prompt "\nChon text de cong:")
	(setq ss (ssget '((0 . "TEXT")))
	kqua 0)
	(while (and ss (> (sslength ss) 0))
	(setq kqua (+ kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
	(ssdel ent ss))
	(princ kqua))
  
;----------
	((= ptinh "*") ;;;nhan
	(prompt "\nChon text de nhan:")
	(setq ss (ssget '((0 . "TEXT")))
	kqua 1)
	(while (and ss (> (sslength ss) 0))
	(setq kqua (* kqua (atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))))
	(ssdel ent ss))
	(princ kqua))
;-----------
	((= ptinh "-") ;;;tru
	(setq sobitru (car (entsel "\nChon so bi tru:"))
	sotru (car (entsel "\nChon so tru:\n"))
	kqua (- (atof (cdr (assoc 1 (entget sobitru))))
	(atof (cdr (assoc 1 (entget sotru))))))
	(princ kqua))
;----------
	((= ptinh "/") ;;;chia
	(setq sobichia (car (entsel "\nChon so bi chia:"))
	sochia (car (entsel "\nChon so chia:\n"))
	kqua (/ (atof (cdr (assoc 1 (entget sobichia))))
	(atof (cdr (assoc 1 (entget sochia))))))
	(princ kqua))
)
;----------
(setq obj (vlax-ename->vla-object (car (entsel "\nChon text de ghi ket qua:"))))
(vla-put-TextString obj (rtos kqua 2 ssle))
(princ)
)
;;;---------------------------------------------------------------------------------------------------------------------

Mình có sưu tầm được Lisp tính đại số các text trên, khi chọn một phép tính ví dụ như + , thì lisp chỉ thực hiện được có một lần thôi, muốn tính + nữa phải chọn lệnh cộng + tiếp, và các phép tính khác cũng vậy, làm cho công việc hơi chậm đi.

Nhờ các Pro chỉnh giúp Lisp:

1. Là khị chọn một phép tính ban đầu, ví như tính một dảy số cộng hết hàng 1 Enter và ghi kết quả ra , Enter lập lại tính cộng tiếp hàng 2,..., ... khi muốn kết thúc phép tính cộng ấn enter 2 lần, trở lại ban đầu đển chọ chuyển phép tính khác.

2. Việc xuất ra kết quả có 2 lực chọn : a. Chọn tẽt cũ để ghi kết quả và thay thế. b- Chọn điểm để ghi kết quả mới vào.

Cám ơn

Similar topics from web:

Ngôn ngữ lập trình – Wikipedia tiếng Việt

Cách tính tọa độ từ tọa độ một điểm có sẵn trên CAD hoặc phần ...

Lập trình hướng đối tượng – Wikipedia tiếng Việt

Giải quyết san nền theo lưới ô vuông trên Civil 3D với NXsoft ...

Python (ngôn ngữ lập trình) – Wikipedia tiếng Việt

Chương trình vẽ và Tkê thép dầm cột sàn chỉ bằng 1 cái click chuột ...

C (ngôn ngữ lập trình) – Wikipedia tiếng Việt

Tự học lập trình trong 10 năm – Peter Norvig | Tạp chí Lập trình

Visual Lisp? [Lưu Trữ]

+: Nhờ viết lisp

DANG NHAP FACEBOOK: tháng một 2013

Notepad++ – Công cụ lập trình miễn phí tuyệt

Phần mềm PKT 1.0 trong khảo sát thiết kế: Giảm thời gian, tránh sai ...

Download Phần mềm thống kê cốt thép TIP

Bricsys BricsCad Platinum v13.1.11.41196

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  

×