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  
hoanghaile86

[nhờ sữa lips] lips tính diện tích

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

Em có 1 lips như sau:

(defun DXF (code elist)
  (cdr (assoc code elist))
);dxf

(defun c:dt(/ dtl dtcon pt1 pt2 ss et oslast vsize)
  (if (= tl nil) (progn
    (setq tl (getreal "\n Ti le ban ve (don vi ban ve la m thi nhap ti le la 1000): "))
;    (setq ntl (/ 1000 tl))
;    (setq tl2 (* ntl ntl))
    )
  )
  (setq dtl 0)
  (setq ss (ssadd))
  (setq oslast (getvar "OSMODE"))
  (command "osnap" "")
   (setq ntl (/ 1000 tl))
   (setq tl2 (* ntl ntl))

  (print)
  (print)
  (setq pt1 (getpoint "\nchon diem bat ki trong hinh: "))
  (while (/= pt1 nil)
    (command "-boundary" pt1 "")
    (setq et (entlast))
    (ssadd et ss)
    (command "area" "e" "last")
    (setq vsize ( /(getvar "VIEWSIZE") 5))
    (command "hatch" "ANSI31" vsize "0" "last" "")
    (setq et (entlast))
    (ssadd et ss)
    (setq dtcon (/ (getvar "AREA") tl2))
    (setq dtl (+ dtcon dtl))
    (prompt (strcat "\ntong dien tich hinh ban chon : " (rtos dtcon 2 2)))
    (print)
    (print)
    (setq pt1 (getpoint "\nChon tiep hinh nao nua khong?: "))
  )
  (command "setvar" "OSMODE" oslast)
  (command "erase" ss "")
  (setq ss nil)
  (command "redraw")
;  (setq dtl (/ (/ dtl tl2) 2)) 
;  (setq dtl (/ dtl 2)) 
  (print)
  (prompt (strcat "\ntong dien tich cac hinh ban da chon : " (rtos dtl 2 2)))
  (print)
  (setq pt2 (getpoint "\nDiem dat dien tich: "))
  (if (/= 0 (DXF 40 (tblsearch "STYLE" (getvar "TEXTSTYLE"))))
    (command "text" pt2  "0" (rtos dtl 2 2))
    (command "text" pt2 "0.4" "0" (rtos dtl 2 2))
  );if
  (princ)
);defun dt
;------------------------------------------------------------------------

kết quả đo diện tích chỉ có 2 số lẽ. E muốn kết quả là 3 số lẽ thì phải sữa lips như thế nào. em cảm ơn nhìu

http://www.cadviet.com/upfiles/3/130827_dien_tich.lsp

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
BKTen    6



; (rtos dtl 2 2) Bạn thay số 2 cuối của tất cả các dòng thành số 3 cụ thể là: ;(rtos dtl 2 3)
; Hoặc Coppy đoạn code trên lưu thành file *.lsp
; chuong trinh tinh dien tich

(defun DXF (code elist)
(cdr (assoc code elist))
);dxf

(defun c:tdt(/ dtl dtcon pt1 pt2 ss et oslast vsize)
(if (= tl nil) (progn
(setq tl (getreal "\n Ti le ban ve (don vi ban ve la m thi nhap ti le la 1000): "));khong can nhap cung duoc
(if tl null (setq tl 1000))
; (setq ntl (/ 1000 tl))
; (setq tl2 (* ntl ntl))
)
)
(setq dtl 0)
(setq ss (ssadd))
(setq oslast (getvar "OSMODE"))
(command "osnap" "")
(setq ntl (/ 1000 tl))
(setq tl2 (* ntl ntl))

(print)
(print)
(setq pt1 (getpoint "\nchon diem bat ki trong hinh: "))
(while (/= pt1 nil)
(command "-boundary" pt1 "")
(setq et (entlast))
(ssadd et ss)
(command "area" "e" "last")
(setq vsize ( /(getvar "VIEWSIZE") 5))
(command "hatch" "ANSI31" vsize "0" "last" "")
(setq et (entlast))
(ssadd et ss)
(setq dtcon (/ (getvar "AREA") tl2))
(setq dtl (+ dtcon dtl))
(prompt (strcat "\ntong dien tich hinh ban chon : " (rtos dtcon 2 3)))
(print)
(print)
(setq pt1 (getpoint "\nChon tiep hinh nao nua khong?: "))
)
(command "setvar" "OSMODE" oslast)
(command "erase" ss "")
(setq ss nil)
(command "redraw")
; (setq dtl (/ (/ dtl tl2) 2))
; (setq dtl (/ dtl 2))
(print)
(prompt (strcat "\ntong dien tich cac hinh ban da chon : " (rtos dtl 2 3)))
(print)
(setq pt2 (getpoint "\nDiem dat dien tich: "))
(if (/= 0 (DXF 40 (tblsearch "STYLE" (getvar "TEXTSTYLE"))))
(command "text" pt2 "0" (rtos dtl 2 3))
(command "text" pt2 "0.4" "0" (rtos dtl 2 3))
);if
(princ)
);defun dt
;------------------------------------------------------------------------

 

Chỉnh sửa theo BKTen

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

(rtos dtl 2 2)  Bạn thay số 2 cuối của tất cả các dòng thành số 3  cụ thể là: (rtos dtl 2 3)

Hoặc Coppy đoạn code trên lưu thành file *.lsp

(defun DXF (code elist)

  (cdr (assoc code elist))

);dxf

 

(defun c:tdt(/ dtl dtcon pt1 pt2 ss et oslast vsize)

  (if (= tl nil) (progn

    (setq tl (getreal "\n Ti le ban ve (don vi ban ve la m thi nhap ti le la 1000): "));khong can nhap cung duoc

    (if tl null (setq tl 1000))

;    (setq ntl (/ 1000 tl))

;    (setq tl2 (* ntl ntl))

    )

  )

  (setq dtl 0)

  (setq ss (ssadd))

  (setq oslast (getvar "OSMODE"))

  (command "osnap" "")

   (setq ntl (/ 1000 tl))

   (setq tl2 (* ntl ntl))

 

  (print)

  (print)

  (setq pt1 (getpoint "\nchon diem bat ki trong hinh: "))

  (while (/= pt1 nil)

    (command "-boundary" pt1 "")

    (setq et (entlast))

    (ssadd et ss)

    (command "area" "e" "last")

    (setq vsize ( /(getvar "VIEWSIZE") 5))

    (command "hatch" "ANSI31" vsize "0" "last" "")

    (setq et (entlast))

    (ssadd et ss)

    (setq dtcon (/ (getvar "AREA") tl2))

    (setq dtl (+ dtcon dtl))

    (prompt (strcat "\ntong dien tich hinh ban chon : " (rtos dtcon 2 3)))

    (print)

    (print)

    (setq pt1 (getpoint "\nChon tiep hinh nao nua khong?: "))

  )

  (command "setvar" "OSMODE" oslast)

  (command "erase" ss "")

  (setq ss nil)

  (command "redraw")

;  (setq dtl (/ (/ dtl tl2) 2))

;  (setq dtl (/ dtl 2))

  (print)

  (prompt (strcat "\ntong dien tich cac hinh ban da chon : " (rtos dtl 2 3)))

  (print)

  (setq pt2 (getpoint "\nDiem dat dien tich: "))

  (if (/= 0 (DXF 40 (tblsearch "STYLE" (getvar "TEXTSTYLE"))))

    (command "text" pt2  "0" (rtos dtl 2 3))

    (command "text" pt2 "0.4" "0" (rtos dtl 2 3))

  );if

  (princ)

);defun dt

;------------------------------------------------------------------------

cam on ban nhiu nhe

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  

×