Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
friendship293a

Nhờ viết Lisp diện tích, nhân nhanh

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

Em đang cần 3 lisp tính diện tích và nhân nhanh cụ thể là thế này

1. Lisp tính diện tích nhanh. đánh lệnh rồi chọn khung bo hoặc pick điểm enter chọn text ghi kết quả xong.

2. lisp nhân nhanh. chọn số thứ nhất rùi chọn số thứ 2 rùi chọn text ghi kết quả đơn giản không phải enter nhiều lần

3. Lisp tính diện tích và nhân.đánh lệnh rùi chọn khung bo hoặc pick điểm enter chọn sô cần nhân vào giá trị diện tích, chọn text ghi kết quả.

 

EM đã tìm trên diễn đàn nhưng lisp chưa được như ý nên mong ai hiểu biết về lisp giúp đỡ ạ. Cảm ơn mọi ngườ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
phamngoctukts    708
Em đang cần 3 lisp tính diện tích và nhân nhanh cụ thể là thế này

1. Lisp tính diện tích nhanh. đánh lệnh rồi chọn khung bo hoặc pick điểm enter chọn text ghi kết quả xong.

2. lisp nhân nhanh. chọn số thứ nhất rùi chọn số thứ 2 rùi chọn text ghi kết quả đơn giản không phải enter nhiều lần

3. Lisp tính diện tích và nhân.đánh lệnh rùi chọn khung bo hoặc pick điểm enter chọn sô cần nhân vào giá trị diện tích, chọn text ghi kết quả.

 

EM đã tìm trên diễn đàn nhưng lisp chưa được như ý nên mong ai hiểu biết về lisp giúp đỡ ạ. Cảm ơn mọi người.

Mình viết cái lõi lisp cho bạn. Còn thêm mắm thêm muối gì tì tuỳ bạn nhé.

(defun c:nhant ()
 (setq tn1 (atof (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nChon text 1: "))))))
 (setq tn2 (atof (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nChon text 2: "))))))
 (setq ent (entget (car (entsel "\nChon text ghi ket qua: "))))
 (setq kq (* tn1 tn2))
 (entmod (subst (cons 1 (rtos kq 2 3)) (assoc 1 ent) ent))
 )
(defun c:dt ()
 (setq p (getpoint "\nPick trong vung can tinh dien tich: "))
 (setq txt (entget (car (entsel "\nChon text ghi ket qua: "))))
 (setq nh (getreal "\nNhap so muon nhan voi dien tich: "))
 (setq kq (* (dientich p) nh))
 (entmod (subst (cons 1 (rtos kq 2 3)) (assoc 1 txt) txt))
 )
(defun dientich ( pt /)
 (command "-boundary" pt ""
   (if (/= (getvar "cmdactive") 0)
     (command "")
     )
   )
 (setq el (entlast))
 (if (= (cdr (assoc 0 (entget el))) "LWPOLYLINE")
(progn
  (command "region" el "")
  (setq el (entlast))
  )
   )
 (setq dt (vla-get-area (vlax-ename->vla-object el)))
 (command "undo" 1)
 dt
 )

  • 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

Code của bạn chạy rất tốt nhưng minhg mù tịt về lisp muốn sửa tí nhưng chẳng bít sửa thế nào. Đã giúp thì giúp cho chót hì hì cụ thể là

1. Lisp tính diện tích rùi ghi kết qủa trực tiếp vào 1 text có sẵn chưa có

2.Lisp nhân nhanh của bạn chạy rất tốt không chê vào đâu được hì hì

3. Lisp tính diện tích rùi nhân và ghi kết quả thì text để nhân là text được chọn trên màn hình chứ không phải là nhập từ bàn phím

 

Cảm ơn bạn đã giúp đỡ

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
phamngoctukts    708
Code của bạn chạy rất tốt nhưng minhg mù tịt về lisp muốn sửa tí nhưng chẳng bít sửa thế nào. Đã giúp thì giúp cho chót hì hì cụ thể là

1. Lisp tính diện tích rùi ghi kết qủa trực tiếp vào 1 text có sẵn chưa có

2.Lisp nhân nhanh của bạn chạy rất tốt không chê vào đâu được hì hì

3. Lisp tính diện tích rùi nhân và ghi kết quả thì text để nhân là text được chọn trên màn hình chứ không phải là nhập từ bàn phím

 

Cảm ơn bạn đã giúp đỡ

Của bạn đây:

(defun c:dt ()
 (setq p (getpoint "\nPick trong vung can tinh dien tich: "))
 (setq txt (entget (car (entsel "\nChon text ghi ket qua: "))))
 (setq kq (dientich p))
 (entmod (subst (cons 1 (rtos kq 2 3)) (assoc 1 txt) txt))
 )
(defun c:nhant ()
 (setq tn1 (atof (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nChon text 1: "))))))
 (setq tn2 (atof (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nChon text 2: "))))))
 (setq ent (entget (car (entsel "\nChon text ghi ket qua: "))))
 (setq kq (* tn1 tn2))
 (entmod (subst (cons 1 (rtos kq 2 3)) (assoc 1 ent) ent))
 )
(defun c:dtn ()
 (setq p (getpoint "\nPick trong vung can tinh dien tich: "))
 (setq nh (atof (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nChon text de nhan: "))))))
 (setq txt (entget (car (entsel "\nChon text ghi ket qua: "))))
 (setq kq (* (dientich p) nh))
 (entmod (subst (cons 1 (rtos kq 2 3)) (assoc 1 txt) txt))
 )
(defun dientich ( pt /)
 (command "-boundary" pt ""
   (if (/= (getvar "cmdactive") 0)
     (command "")
     )
   )
 (setq el (entlast))
 (if (= (cdr (assoc 0 (entget el))) "LWPOLYLINE")
(progn
  (command "region" el "")
  (setq el (entlast))
  )
   )
 (setq dt (vla-get-area (vlax-ename->vla-object el)))
 (command "undo" 1)
 dt
 )
(vl-load-com)

  • 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

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  

×