Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
2 replies to this topic

#1 hoanghaile86

hoanghaile86

    biết pan

  • Members
  • Pip
  • 5 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 02 May 2014 - 07:32 AM

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.c...7_dien_tich.lsp


  • 0

#2 BKTen

BKTen

    biết vẽ circle

  • Members
  • PipPip
  • 34 Bài viết
Điểm đánh giá: 6 (bình thường)

Đã gửi 02 May 2014 - 08:23 AM


; (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
;------------------------------------------------------------------------

Bài viết đã được chỉnh sửa nội dung bởi BKTen: 03 May 2014 - 10:33 AM

  • 0

Muốn làm bạn với AutoLisp. Mong được đàn anh Pro Chỉ dạy.


#3 hoanghaile86

hoanghaile86

    biết pan

  • Members
  • Pip
  • 5 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 02 May 2014 - 08:35 AM

(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


  • 0