Đến nội dung


Hình ảnh
* * - - - 2 Bình chọn

[Đã xong] Nhờ giúp Lisp tính diện tích và lập bảng


  • Please log in to reply
92 replies to this topic

#61 maiquyen0185

maiquyen0185

    Chưa sử dụng CAD

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

Đã gửi 22 June 2012 - 02:50 PM

cảm ơn bạn Thaistreetz nhiều nhé. lisp của bạn dùng rất tốt cho công việc của mình :)
  • 0

#62 phuongtran613

phuongtran613

    biết zoom

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

Đã gửi 30 June 2012 - 12:36 AM

http://www.cadviet.c...s/3/50556_r.lsp
đây là lisp của bác Thaittreetz: tính diện tích và lập bảng nhưng cách chọn khu vực tính diện tích là nhấp vào bên trong miền kín. Nhờ các bác cao thủ giúp em thêm 1 chức năng mình có thể chọn khu vực tính diện tích bằng cách nhấp vào đối tượng như polyline chẳng hạn và vẫn xuất diện tích ra bảng.
Cảm ơn nhiều
  • 0

#63 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5448 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 30 June 2012 - 09:07 AM

Lisp nằm ở topic nào thì hỏi ở topic đó bạn nhé.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#64 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 30 June 2012 - 02:08 PM

http://www.cadviet.c...s/3/50556_r.lsp
đây là lisp của bác Thaittreetz: tính diện tích và lập bảng nhưng cách chọn khu vực tính diện tích là nhấp vào bên trong miền kín. Nhờ các bác cao thủ giúp em thêm 1 chức năng mình có thể chọn khu vực tính diện tích bằng cách nhấp vào đối tượng như polyline chẳng hạn và vẫn xuất diện tích ra bảng.
Cảm ơn nhiều

Hề hề hề,
Mình giúp bạn lần này đưa vấn đề bạn hỏi về cùng topic gốc. Lần sau bạn nên rút kinh nghiệm để diễ đàn đỡ rối rắm.
Bạn dùng thử cái này xem đã ưng ý chưa nhé.


(defun c:ddt(/ lacol ladin laos tl h tl1 cao1 k tdt ss pt p1 p2 p3 p4 p5 p6 p7 p8
pa pt1 pt2 e ep p9 p10 p11 p12 p13 et dtcon )
(setvar "cmdecho" 0)
(setq lacol (getvar "CEColor"))
(setq ladin (getvar "dimzin"))
(setq laos (getvar "osmode"))
(if (not tl) (setq tl 1))
(if (not h) (setq h 1))
(setq tl1 (getreal (strcat "\nty le ban ve < 1/" (rtos tl 2 0) " >: 1/"))
caot1 (getreal (strcat "\nCao text < " (rtos h 2 0) " >: ")))
(if tl1 (setq tl tl1))
(if caot1 (setq h caot1))
(command "undo" "be")
(setq k 0
tdt 0)
(setq ss (ssadd))

(setvar "dimzin" 0)
(setvar "OSMODE" 0)
(setq PT (getpoint "\nChon diem xuat bang thong ke dien tich (mep trai):"))
(setq P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P6 (list (+ (car PT)(* 11 h)) (+ (cadr PT)(* 2 h)))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
);setq
(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P6 (* 1.2 h) 0 "Bang thong ke dien tich"
"text" "m" P7 h 0 "STT"
"text" "m" P8 h 0 "Dien tich (mm2)"
);command
(setq PA (getstring "\n Ban chon phuong an chon doi tuong < 1 or 2 > : "))
(if (= pa "1")
(setq pt1 (getpoint "\n Chon mien tinh dien tich : "))
(setq ep (car (setq e (entsel "\n Chon doi tuong la polyline kin")))
pt2 (cadr e) )
)
(while (or (/= pt1 nil) (/= ep nil) )
(setq k (+ 1 k))
(if pt1
(command "TEXT" "m" pt1 (* 1 h) 0 (rtos k 2 0))
)
(if ep
(command "TEXT" "m" pt2 (* 1 h) 0 (rtos k 2 0))
)
(setq PT (list (car P3) (cadr P3))
P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
P9 (list (car PT) (- (cadr P3)(* 3 h)))
P10 (list (car P1) (cadr P9))
P11 (list (car P2) (cadr P9))
P12 (list (car P7) (- (cadr P3)(* 1.5 h)))
P13 (list (car P8) (cadr P12))
);setq
(if pt1
(progn
(command "CECOLOR" 4 "-boundary" pt1 "" )
(setvar "CECOLOR" lacol)
(setq et (entlast))
(ssadd et ss)
(command "area" "e" "last")
)
)
(if ep
(command "area" "o" ep)
)
;;;;;;(setq et (entlast))
;;;;;;(ssadd et ss)
(setq dtcon (* (getvar "AREA") tl tl))
(setq tdt (+ dtcon tdt))
(command "erase" ss "")

(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P7 h 0 (rtos k 2 0)
"text" "m" P8 h 0 (rtos dtcon 2 2))
(if pt1
(setq pt1 (getpoint "\n chon mien tinh dien tich tiep theo hoac enter de ket thuc lenh..."))
)
(if ep
(setq ep (car (setq e (entsel "\n Chon polyline tiep theo ho&#7841;c enter de ket thuc lenh ..."))) pt2 (cadr e) )
)
);while
(setq ss nil)
(setvar "DIMZIN" ladin)
(command "pline" P3 P9 P11 P5 "C"
"pline" P10 P4 ""
"text" "m" P12 h 0 "Tong"
"text" "m" P13 h 0 (rtos tdt 2 2)
);command
(command "undo" "e")
(setvar "OSMODE" laos)
(setvar "cmdecho" 1)
(princ)
)
Chúc bạn vui......
  • 3
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#65 Bienxanh_19

Bienxanh_19

    Chưa sử dụng CAD

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

Đã gửi 30 June 2012 - 11:28 PM

Hề hề hề,
Mình giúp bạn lần này đưa vấn đề bạn hỏi về cùng topic gốc. Lần sau bạn nên rút kinh nghiệm để diễ đàn đỡ rối rắm.
Bạn dùng thử cái này xem đã ưng ý chưa nhé.



(defun c:ddt(/ lacol ladin laos tl h tl1 cao1 k tdt ss pt p1 p2 p3 p4 p5 p6 p7 p8
pa pt1 pt2 e ep p9 p10 p11 p12 p13 et dtcon )
(setvar "cmdecho" 0)
(setq lacol (getvar "CEColor"))
(setq ladin (getvar "dimzin"))
(setq laos (getvar "osmode"))
(if (not tl) (setq tl 1))
(if (not h) (setq h 1))
(setq tl1 (getreal (strcat "\nty le ban ve < 1/" (rtos tl 2 0) " >: 1/"))
caot1 (getreal (strcat "\nCao text < " (rtos h 2 0) " >: ")))
(if tl1 (setq tl tl1))
(if caot1 (setq h caot1))
(command "undo" "be")
(setq k 0
tdt 0)
(setq ss (ssadd))

(setvar "dimzin" 0)
(setvar "OSMODE" 0)
(setq PT (getpoint "\nChon diem xuat bang thong ke dien tich (mep trai):"))
(setq P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P6 (list (+ (car PT)(* 11 h)) (+ (cadr PT)(* 2 h)))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
);setq
(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P6 (* 1.2 h) 0 "Bang thong ke dien tich"
"text" "m" P7 h 0 "STT"
"text" "m" P8 h 0 "Dien tich (mm2)"
);command
(setq PA (getstring "\n Ban chon phuong an chon doi tuong < 1 or 2 > : "))
(if (= pa "1")
(setq pt1 (getpoint "\n Chon mien tinh dien tich : "))
(setq ep (car (setq e (entsel "\n Chon doi tuong la polyline kin")))
pt2 (cadr e) )
)
(while (or (/= pt1 nil) (/= ep nil) )
(setq k (+ 1 k))
(if pt1
(command "TEXT" "m" pt1 (* 1 h) 0 (rtos k 2 0))
)
(if ep
(command "TEXT" "m" pt2 (* 1 h) 0 (rtos k 2 0))
)
(setq PT (list (car P3) (cadr P3))
P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
P9 (list (car PT) (- (cadr P3)(* 3 h)))
P10 (list (car P1) (cadr P9))
P11 (list (car P2) (cadr P9))
P12 (list (car P7) (- (cadr P3)(* 1.5 h)))
P13 (list (car P8) (cadr P12))
);setq
(if pt1
(progn
(command "CECOLOR" 4 "-boundary" pt1 "" )
(setvar "CECOLOR" lacol)
(setq et (entlast))
(ssadd et ss)
(command "area" "e" "last")
)
)
(if ep
(command "area" "o" ep)
)
;;;;;;(setq et (entlast))
;;;;;;(ssadd et ss)
(setq dtcon (* (getvar "AREA") tl tl))
(setq tdt (+ dtcon tdt))
(command "erase" ss "")

(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P7 h 0 (rtos k 2 0)
"text" "m" P8 h 0 (rtos dtcon 2 2))
(if pt1
(setq pt1 (getpoint "\n chon mien tinh dien tich tiep theo hoac enter de ket thuc lenh..."))
)
(if ep
(setq ep (car (setq e (entsel "\n Chon polyline tiep theo ho&#7841;c enter de ket thuc lenh ..."))) pt2 (cadr e) )
)
);while
(setq ss nil)
(setvar "DIMZIN" ladin)
(command "pline" P3 P9 P11 P5 "C"
"pline" P10 P4 ""
"text" "m" P12 h 0 "Tong"
"text" "m" P13 h 0 (rtos tdt 2 2)
);command
(command "undo" "e")
(setvar "OSMODE" laos)
(setvar "cmdecho" 1)
(princ)
)
Chúc bạn vui......

E nhờ các A chỉnh sưả code sao cho sau dâú phẩy chỉ lấy một chữ số thô i ah!Mong các anh giúp choỡơ
  • 1

#66 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 02 July 2012 - 04:06 PM

E nhờ các A chỉnh sưả code sao cho sau dâú phẩy chỉ lấy một chữ số thô i ah!Mong các anh giúp choỡơ

Hề hề hề,
Bạn tự chỉnh sửa lấy nhé.
Thay (rtos dtcon 2 2) bằng (rtos dtcon 2 1)
Thay (rtos tdt 2 2) bằng (rtos tdt 2 1)
Hề hề hề
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#67 Bienxanh_19

Bienxanh_19

    Chưa sử dụng CAD

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

Đã gửi 02 July 2012 - 06:13 PM

Hề hề hề,
Bạn tự chỉnh sửa lấy nhé.
Thay (rtos dtcon 2 2) bằng (rtos dtcon 2 1)
Thay (rtos tdt 2 2) bằng (rtos tdt 2 1)
Hề hề hề


Anh phamthanhbinh ơ i! A có thể giúp e chỉnh sửa luô n khô ng A!
E không biết về lập trình A ah!
Mong được A giúp đỡ !
  • 0

#68 phuongtran613

phuongtran613

    biết zoom

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

Đã gửi 03 July 2012 - 10:36 PM

Hề hề hề,
Mình giúp bạn lần này đưa vấn đề bạn hỏi về cùng topic gốc. Lần sau bạn nên rút kinh nghiệm để diễ đàn đỡ rối rắm.
Bạn dùng thử cái này xem đã ưng ý chưa nhé.



(defun c:ddt(/ lacol ladin laos tl h tl1 cao1 k tdt ss pt p1 p2 p3 p4 p5 p6 p7 p8
pa pt1 pt2 e ep p9 p10 p11 p12 p13 et dtcon )
(setvar "cmdecho" 0)
(setq lacol (getvar "CEColor"))
(setq ladin (getvar "dimzin"))
(setq laos (getvar "osmode"))
(if (not tl) (setq tl 1))
(if (not h) (setq h 1))
(setq tl1 (getreal (strcat "\nty le ban ve < 1/" (rtos tl 2 0) " >: 1/"))
caot1 (getreal (strcat "\nCao text < " (rtos h 2 0) " >: ")))
(if tl1 (setq tl tl1))
(if caot1 (setq h caot1))
(command "undo" "be")
(setq k 0
tdt 0)
(setq ss (ssadd))

(setvar "dimzin" 0)
(setvar "OSMODE" 0)
(setq PT (getpoint "\nChon diem xuat bang thong ke dien tich (mep trai):"))
(setq P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P6 (list (+ (car PT)(* 11 h)) (+ (cadr PT)(* 2 h)))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
);setq
(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P6 (* 1.2 h) 0 "Bang thong ke dien tich"
"text" "m" P7 h 0 "STT"
"text" "m" P8 h 0 "Dien tich (mm2)"
);command
(setq PA (getstring "\n Ban chon phuong an chon doi tuong < 1 or 2 > : "))
(if (= pa "1")
(setq pt1 (getpoint "\n Chon mien tinh dien tich : "))
(setq ep (car (setq e (entsel "\n Chon doi tuong la polyline kin")))
pt2 (cadr e) )
)
(while (or (/= pt1 nil) (/= ep nil) )
(setq k (+ 1 k))
(if pt1
(command "TEXT" "m" pt1 (* 1 h) 0 (rtos k 2 0))
)
(if ep
(command "TEXT" "m" pt2 (* 1 h) 0 (rtos k 2 0))
)
(setq PT (list (car P3) (cadr P3))
P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
P9 (list (car PT) (- (cadr P3)(* 3 h)))
P10 (list (car P1) (cadr P9))
P11 (list (car P2) (cadr P9))
P12 (list (car P7) (- (cadr P3)(* 1.5 h)))
P13 (list (car P8) (cadr P12))
);setq
(if pt1
(progn
(command "CECOLOR" 4 "-boundary" pt1 "" )
(setvar "CECOLOR" lacol)
(setq et (entlast))
(ssadd et ss)
(command "area" "e" "last")
)
)
(if ep
(command "area" "o" ep)
)
;;;;;;(setq et (entlast))
;;;;;;(ssadd et ss)
(setq dtcon (* (getvar "AREA") tl tl))
(setq tdt (+ dtcon tdt))
(command "erase" ss "")

(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P7 h 0 (rtos k 2 0)
"text" "m" P8 h 0 (rtos dtcon 2 2))
(if pt1
(setq pt1 (getpoint "\n chon mien tinh dien tich tiep theo hoac enter de ket thuc lenh..."))
)
(if ep
(setq ep (car (setq e (entsel "\n Chon polyline tiep theo ho&#7841;c enter de ket thuc lenh ..."))) pt2 (cadr e) )
)
);while
(setq ss nil)
(setvar "DIMZIN" ladin)
(command "pline" P3 P9 P11 P5 "C"
"pline" P10 P4 ""
"text" "m" P12 h 0 "Tong"
"text" "m" P13 h 0 (rtos tdt 2 2)
);command
(command "undo" "e")
(setvar "OSMODE" laos)
(setvar "cmdecho" 1)
(princ)
)
Chúc bạn vui......


cám ơn bác Phạm Thanh Bình nhiều lắm, líp sử dụng rất tốt
  • 0

#69 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 04 July 2012 - 12:05 AM


Anh phamthanhbinh ơ i! A có thể giúp e chỉnh sửa luô n khô ng A!
E không biết về lập trình A ah!
Mong được A giúp đỡ !

Hề hề hề,
Không phải là không được nhưng mình không làm vì nếu ngay cả cái việc đọc và chép code này mà bạn cũng không muốn làm thì không nên dùng lisp nữa đâu. Bởi vì lisp trên diễn đàn này chỉ sử dụng cho những mục tiêu nhất định mà chủ thớt đã đặt ra. Vì vậy nếu bạn không muốn hiểu về nó thì đừng nên dùng vì có ngày mang vạ đấy. Còn nếu muốn dùng thì phải hiểu chút chút về nó.
Mình đã chỉ cho bạn chỗ cần sửa và cách sửa mà bạn cũng không muốn đụng tay đụng chân vào để làm và hiểu thì ..... hãy chờ đó, may ra có bác nào đủ nhiệt tình hơn sẽ giúp bạn nhé.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#70 Bienxanh_19

Bienxanh_19

    Chưa sử dụng CAD

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

Đã gửi 04 July 2012 - 12:33 PM

Hề hề hề,
Không phải là không được nhưng mình không làm vì nếu ngay cả cái việc đọc và chép code này mà bạn cũng không muốn làm thì không nên dùng lisp nữa đâu. Bởi vì lisp trên diễn đàn này chỉ sử dụng cho những mục tiêu nhất định mà chủ thớt đã đặt ra. Vì vậy nếu bạn không muốn hiểu về nó thì đừng nên dùng vì có ngày mang vạ đấy. Còn nếu muốn dùng thì phải hiểu chút chút về nó.
Mình đã chỉ cho bạn chỗ cần sửa và cách sửa mà bạn cũng không muốn đụng tay đụng chân vào để làm và hiểu thì ..... hãy chờ đó, may ra có bác nào đủ nhiệt tình hơn sẽ giúp bạn nhé.

Cảm ơn A PhamthanhBinh đã có lời động viên!Thật sự e mới biết cad, tìm tòi Lisp hay để thao tác cho nhanh!
Còn vấn đề về Cod thật sự e không biết tiếp cận như thế nào!
Chúc A và mọi người sức khỏe
  • 0

#71 SoftvnBin

SoftvnBin

    biết vẽ ellipse

  • Advance Member
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 04 July 2012 - 07:16 PM

Hề hề hề,
Không phải là không được nhưng mình không làm vì nếu ngay cả cái việc đọc và chép code này mà bạn cũng không muốn làm thì không nên dùng lisp nữa đâu. Bởi vì lisp trên diễn đàn này chỉ sử dụng cho những mục tiêu nhất định mà chủ thớt đã đặt ra. Vì vậy nếu bạn không muốn hiểu về nó thì đừng nên dùng vì có ngày mang vạ đấy. Còn nếu muốn dùng thì phải hiểu chút chút về nó.
Mình đã chỉ cho bạn chỗ cần sửa và cách sửa mà bạn cũng không muốn đụng tay đụng chân vào để làm và hiểu thì ..... hãy chờ đó, may ra có bác nào đủ nhiệt tình hơn sẽ giúp bạn nhé.

Cảm ơn PhamThanBinh Ctrl + F, + H, +G bản thân word cũng có, hãy tận dụng hết sử dụng có thể bạnBienxanh_19 nhé
  • 0

#72 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 04 July 2012 - 08:50 PM

Notepad cũng có chứ cần chi Word bạn ơi ^^
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#73 SoftvnBin

SoftvnBin

    biết vẽ ellipse

  • Advance Member
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 05 July 2012 - 01:31 AM

Notepad cũng có chứ cần chi Word bạn ơi ^^

Ờ hén! hiihihi, cad cũng có nữa kìa :) !!!
  • 0

#74 SoftvnBin

SoftvnBin

    biết vẽ ellipse

  • Advance Member
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 10 July 2012 - 01:18 AM

Hề hề hề,
Mình giúp bạn lần này đưa vấn đề bạn hỏi về cùng topic gốc. Lần sau bạn nên rút kinh nghiệm để diễ đàn đỡ rối rắm.
Bạn dùng thử cái này xem đã ưng ý chưa nhé.



(defun c:ddt(/ lacol ladin laos tl h tl1 cao1 k tdt ss pt p1 p2 p3 p4 p5 p6 p7 p8
pa pt1 pt2 e ep p9 p10 p11 p12 p13 et dtcon )
(setvar "cmdecho" 0)
(setq lacol (getvar "CEColor"))
(setq ladin (getvar "dimzin"))
(setq laos (getvar "osmode"))
(if (not tl) (setq tl 1))
(if (not h) (setq h 1))
(setq tl1 (getreal (strcat "\nty le ban ve < 1/" (rtos tl 2 0) " >: 1/"))
caot1 (getreal (strcat "\nCao text < " (rtos h 2 0) " >: ")))
(if tl1 (setq tl tl1))
(if caot1 (setq h caot1))
(command "undo" "be")
(setq k 0
tdt 0)
(setq ss (ssadd))

(setvar "dimzin" 0)
(setvar "OSMODE" 0)
(setq PT (getpoint "\nChon diem xuat bang thong ke dien tich (mep trai):"))
(setq P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P6 (list (+ (car PT)(* 11 h)) (+ (cadr PT)(* 2 h)))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
);setq
(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P6 (* 1.2 h) 0 "Bang thong ke dien tich"
"text" "m" P7 h 0 "STT"
"text" "m" P8 h 0 "Dien tich (mm2)"
);command
(setq PA (getstring "\n Ban chon phuong an chon doi tuong < 1 or 2 > : "))
(if (= pa "1")
(setq pt1 (getpoint "\n Chon mien tinh dien tich : "))
(setq ep (car (setq e (entsel "\n Chon doi tuong la polyline kin")))
pt2 (cadr e) )
)
(while (or (/= pt1 nil) (/= ep nil) )
(setq k (+ 1 k))
(if pt1
(command "TEXT" "m" pt1 (* 1 h) 0 (rtos k 2 0))
)
(if ep
(command "TEXT" "m" pt2 (* 1 h) 0 (rtos k 2 0))
)
(setq PT (list (car P3) (cadr P3))
P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
P9 (list (car PT) (- (cadr P3)(* 3 h)))
P10 (list (car P1) (cadr P9))
P11 (list (car P2) (cadr P9))
P12 (list (car P7) (- (cadr P3)(* 1.5 h)))
P13 (list (car P8) (cadr P12))
);setq
(if pt1
(progn
(command "CECOLOR" 4 "-boundary" pt1 "" )
(setvar "CECOLOR" lacol)
(setq et (entlast))
(ssadd et ss)
(command "area" "e" "last")
)
)
(if ep
(command "area" "o" ep)
)
;;;;;;(setq et (entlast))
;;;;;;(ssadd et ss)
(setq dtcon (* (getvar "AREA") tl tl))
(setq tdt (+ dtcon tdt))
(command "erase" ss "")

(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P7 h 0 (rtos k 2 0)
"text" "m" P8 h 0 (rtos dtcon 2 2))
(if pt1
(setq pt1 (getpoint "\n chon mien tinh dien tich tiep theo hoac enter de ket thuc lenh..."))
)
(if ep
(setq ep (car (setq e (entsel "\n Chon polyline tiep theo ho&#7841;c enter de ket thuc lenh ..."))) pt2 (cadr e) )
)
);while
(setq ss nil)
(setvar "DIMZIN" ladin)
(command "pline" P3 P9 P11 P5 "C"
"pline" P10 P4 ""
"text" "m" P12 h 0 "Tong"
"text" "m" P13 h 0 (rtos tdt 2 2)
);command
(command "undo" "e")
(setvar "OSMODE" laos)
(setvar "cmdecho" 1)
(princ)
)
Chúc bạn vui......


Mình lại làm phiền bạn nhé, nhờ bạn giúp mình sửa như sau:


1. Nhập tên lệnh: AAA
2. Nhập tỷ lệ bản vẽ <1000, 100, 10, 1>: 1000 (sẽ gợi nhớ số này cho lần thực hiện tiếp)
3. Nhập đơn vị xuất <m, dm, cm, mm>: m (tương ứng với 1000 ở trên) (sẽ gợi nhớ số này cho lần thực hiện tiếp)
4. Nhập trọng lượng riêng <2500>: 2500 (sẽ gợi nhớ số này cho lần thực hiện tiếp)
5. Pick vị trí đặt bảng <đỉnh mép trái>:
6. Chọn kiểu <1: Pick miền, 2: Pick đường bao>:
7. Chọn vùng tính toán:

Kết quả sẽ cho ra như sau:
Hình đã gửi
  • 0

#75 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 10 July 2012 - 03:21 PM

Mình lại làm phiền bạn nhé, nhờ bạn giúp mình sửa như sau: 1. Nhập tên lệnh: AAA 2. Nhập tỷ lệ bản vẽ <1000, 100, 10, 1>: 1000 (sẽ gợi nhớ số này cho lần thực hiện tiếp) 3. Nhập đơn vị xuất <m, dm, cm, mm>: m (tương ứng với 1000 ở trên) (sẽ gợi nhớ số này cho lần thực hiện tiếp) 4. Nhập trọng lượng riêng <2500>: 2500 (sẽ gợi nhớ số này cho lần thực hiện tiếp) 5. Pick vị trí đặt bảng <đỉnh mép trái>: 6. Chọn kiểu <1: Pick miền, 2: Pick đường bao>: 7. Chọn vùng tính toán: Kết quả sẽ cho ra như sau:

Hề hề hề,
Bạn có muốn tự tay mình chỉnh sửa cái lisp cũ thành cái bạn cần hay không??? Nều bạn muốn mình sẽ giúp bạn làm thử coi sao.
Bạn hãy gửi bản vẽ có cái bảng thống kê tổng hợp của bạn lên để mình có thể check.
Tại sao cột ghi chú và cột tên vùng lại có nội dung giống nhau??? Vậy có phải là thừa không???
Nội dung text bắt buộc phải là tiếng việt có dấu ư?? Cái này mình chưa rành vì lisp không hiểu tiếng Việt.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#76 SoftvnBin

SoftvnBin

    biết vẽ ellipse

  • Advance Member
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 11 July 2012 - 12:36 AM

Hề hề hề,
1. Bạn có muốn tự tay mình chỉnh sửa cái lisp cũ thành cái bạn cần hay không???
2. Nều bạn muốn mình sẽ giúp bạn làm thử coi sao.
3. Bạn hãy gửi bản vẽ có cái bảng thống kê tổng hợp của bạn lên để mình có thể check.
4. Tại sao cột ghi chú và cột tên vùng lại có nội dung giống nhau??? Vậy có phải là thừa không???
5. Nội dung text bắt buộc phải là tiếng việt có dấu ư?? Cái này mình chưa rành vì lisp không hiểu tiếng Việt.

Cảm ơn Bình đã quan tâm, mình xin trả lời bạn như sau:
1. Mình rất muốn nhưng dạo này đang bận quả hoàn công, quyết toán (xong chắc phải 1,5 tháng nữa) mà giữa năm thì thanh tra chịu khó đi lắm :(, hẹn bạn xong vụ công trình riêng này đã nhé (kiếm bát gạo xấu nuôi bồ đã)
2. Oke, mình se gửi (bản vẽ không chính xác lắm = thuyết minh :) )
3. Hai cột này có nội dung giống nhau vì mình rất chi là lười :) nếu cần ghi chú thì ed là Oke không phải nối bảng và căn chỉnh text, nếu không thì để trống, nếu không cần và bản vẽ chật quá thì ETR, F là xong (phá bao giờ cũng nhanh hơn làm mà :) )
4. Nội dung text lấy Text Style hiện hành, bảng mình sẽ lập auto bằng TABLE (TB) mặc định của Autocad thì việc tiếng việt có dấu mình nghĩ sẽ làm được phải không bạn ?
http://www.cadviet.c...dviet_s_c_w.dwg
  • 0

#77 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 11 July 2012 - 12:39 AM

Bác Bình cũng đi kiếm tí rồi bạn ạ :">
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#78 SoftvnBin

SoftvnBin

    biết vẽ ellipse

  • Advance Member
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 11 July 2012 - 12:41 AM

Bác Bình cũng đi kiếm tí rồi bạn ạ :">

Đêm hôm mà phải đi cũng kiếm được à, há há (sao ý nghĩ mình đen tối thế), mình lại phải ở nhà kiếm tý, buồn thật!!
  • 0

#79 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 11 July 2012 - 10:07 AM

Đêm hôm mà phải đi cũng kiếm được à, há há (sao ý nghĩ mình đen tối thế), mình lại phải ở nhà kiếm tý, buồn thật!!

Hề hề hề,
Đêm có tí đêm , ngày có tí ngày chớ bộ.
Đây là cái tí đêm hôm qua cho bạn nè:


(defun c:aaa (/ lacol ladin laos tl esty h tl1 cao1 k tdt ss pt p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13
p14 p15 p16 p17 p18 p19 p20 pa pt1 pt2 e ep et dtcon cvcon klcon klt klr kl0 cvt ten oldla)
(setvar "cmdecho" 0)
(setq lacol (getvar "CEColor"))
(setq ladin (getvar "dimzin"))
(setq laos (getvar "osmode"))
(setq oldla (getvar "clayer"))
(setq esty (tblsearch "style" (getvar "textstyle")))
(if (not tl) (setq tl 1))
(if (= (cdr (assoc 40 esty)) 0.0)
(if (= (cdr (assoc 42 esty)) 0.0) (setq h 1) (setq h (cdr (assoc 42 esty))) )
(progn
(setq h (cdr (assoc 40 esty)))
(command "style" (getvar "textstyle") "" 0.0 "" "" "" "")
)
)
(if (not kl0) (setq kl0 2500))
(setq tl1 (getreal (strcat "\nty le ban ve < 1/" (rtos tl 2 0) " >: 1/"))
caot1 (getreal (strcat "\nCao text < " (rtos h 2 0) " >: "))
klr (getreal (strcat "\n Khoi luong rieng < " (rtos kl0 2 2) " >: ")))
(if tl1 (setq tl tl1))
(if caot1 (setq h caot1))
(if klr (setq kl0 klr) (setq klr kl0) )
(command "undo" "be")
(setq k 0 tdt 0 cvt 0 klt 0)
(setq ss (ssadd))

(setvar "dimzin" 0)
(setvar "OSMODE" 0)
(setq PT (getpoint "\nChon diem xuat bang thong ke dien tich (mep trai):"))
(setq P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P6 (list (+ (car PT)(* 45 h)) (+ (cadr PT)(* 2 h)))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
P9 (list (+ (car P2) (* 16 h)) (cadr P2))
P10 (list (+ (car P9) (* 16 h)) (cadr P9))
P11 (list (+ (car P10) (* 20 h)) (cadr P10))
P12 (list (+ (car P11) (* 16 h)) (cadr P11))
P13 (list (car P9) (cadr P5))
P14 (list (car P10) (cadr P5))
P15 (list (car P11) (cadr P5))
P16 (list (car P12) (cadr P5))
P17 (list (+ (car P8) (* 16 h)) (cadr P8))
P18 (list (+ (car P17) (* 16 h)) (cadr P8))
P19 (list (+ (car P18) (* 18 h)) (cadr P8))
P20 (list (+ (car P19) (* 18 h)) (cadr P8))
);setq
(setvar "clayer" "khung duong")
(command "pline" PT P12 P16 P3 "C"
"pline" P1 P4 "" "pline" P2 P5 "" "pline" p9 p13 "" "pline" p10 p14 "" "pline" p11 p15 "" "pline" p12 p16 "")
(setvar "clayer" "text")
(command "text" "m" P6 (* 1.35 h) 0 "BANG THONG KE TONG HOP"
"text" "m" P7 (* 1.2 H) 0 "STT"
"text" "m" P8 (* 1.2 h) 0 "TEN VUNG"
"TEXT" "M" P17 (* 1.2 h) 0 "CHU VI (M)"
"TEXT" "M" P18 (* 1.2 h) 0 "DIEN TICH (M2)"
"TEXT" "M" P19 (* 1.2 h) 0 "KHOI LUONG (KG)"
"TEXT" "M" P20 (* 1.2 h) 0 "GHI CHU"
);command
(setq PA (getstring "\n Ban chon phuong an chon doi tuong < 1 or 2 > : "))
(if (= pa "1")
(setq pt1 (getpoint "\n Chon mien tinh dien tich : "))
(setq ep (car (setq e (entsel "\n Chon doi tuong la polyline kin")))
pt2 (cadr e) )
)
(while (or (/= pt1 nil) (/= ep nil) )
(setq k (+ 1 k))
(if pt1
(command "TEXT" "m" pt1 (* 1.2 h) 0 (rtos k 2 0))
)
(if ep
(command "TEXT" "m" pt2 (* 1.2 h) 0 (rtos k 2 0))
)
(setq PT (list (car P3) (cadr P3) )
P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
;;;;P6 (list (+ (car PT)(* 43 h)) (+ (cadr PT)(* 2 h)))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
P9 (list (+ (car P2) (* 16 h)) (cadr P2))
P10 (list (+ (car P9) (* 16 h)) (cadr P9))
P11 (list (+ (car P10) (* 20 h)) (cadr P10))
P12 (list (+ (car P11) (* 16 h)) (cadr P11))
P13 (list (car P9) (cadr P5))
P14 (list (car P10) (cadr P5))
P15 (list (car P11) (cadr P5))
P16 (list (car P12) (cadr P5))
P17 (list (+ (car P8) (* 16 h)) (cadr P8))
P18 (list (+ (car P17) (* 16 h)) (cadr P8))
P19 (list (+ (car P18) (* 18 h)) (cadr P8))
P20 (list (+ (car P19) (* 18 h)) (cadr P8))
);setq
(if pt1
(progn
(command "CECOLOR" 4 "-boundary" pt1 "" )
(setvar "CECOLOR" lacol)
(setq et (entlast))
(ssadd et ss)
(command "area" "e" "last")
)
)
(if ep
(command "area" "o" ep)
)
;;;;;;(setq et (entlast))
;;;;;;(ssadd et ss)
(setq dtcon (* (getvar "AREA") tl tl))
(setq tdt (+ dtcon tdt))
(setq cvcon (* (getvar "Perimeter") tl)
cvt (+ cvt cvcon)
klcon (* dtcon klr)
klt (+ klt klcon)
ten (strcat "\n VUNG " (rtos k 2 0))
)
(command "erase" ss "")
(setvar "clayer" "khung duong")
(command "pline" PT P3 P16 P12 ""
"pline" P1 P4 "" "pline" P2 P5 "" "pline" p9 p13 "" "pline" p10 p14 "" "pline" p11 p15 "" "pline" p12 p16 "")
(setvar "clayer" "text")
(command "text" "m" P7 h 0 (rtos k 2 0)
"text" "m" P8 h 0 ten
"TEXT" "M" P17 (* 1.0 h) 0 (rtos cvcon 2 2)
"TEXT" "M" P18 (* 1.0 h) 0 (rtos dtcon 2 2)
"TEXT" "M" P19 (* 1.0 h) 0 (rtos klcon 2 2)
"TEXT" "M" P20 (* 1.0 h) 0 ten )
(if pt1
(setq pt1 (getpoint "\n chon mien tinh dien tich tiep theo hoac enter de ket thuc lenh..."))
)
(if ep
(setq ep (car (setq e (entsel "\n Chon polyline tiep theo hoac enter de ket thuc lenh ..."))) pt2 (cadr e) )
)
);while
(setq ss nil)
(setvar "DIMZIN" ladin)
(setq PT (list (car P3) (cadr P3))
P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
;;;P6 (list (+ (car PT)(* 43 h)) (+ (cadr PT)(* 2 h)))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
P9 (list (+ (car P2) (* 16 h)) (cadr P2))
P10 (list (+ (car P9) (* 16 h)) (cadr P9))
P11 (list (+ (car P10) (* 20 h)) (cadr P10))
P12 (list (+ (car P11) (* 16 h)) (cadr P11))
P13 (list (car P9) (cadr P5))
P14 (list (car P10) (cadr P5))
P15 (list (car P11) (cadr P5))
P16 (list (car P12) (cadr P5))
P17 (list (+ (car P8) (* 16 h)) (cadr P8))
P18 (list (+ (car P17) (* 16 h)) (cadr P8))
P19 (list (+ (car P18) (* 18 h)) (cadr P8))
P20 (list (+ (car P19) (* 18 h)) (cadr P8))
);setq
(setvar "clayer" "khung duong")
(command "pline" PT P3 P16 P12 ""
"pline" P1 P4 "" "pline" P2 P5 "" "pline" p9 p13 "" "pline" p10 p14 "" "pline" p11 p15 "" "pline" p12 p16 "")
(setvar "clayer" "text")
(command "text" "m" P7 (* 1.1 h) 0 "TONG"
"text" "m" P8 (* 1.1 h) 0 (strcat (rtos k 2 0) " VUNG")
"TEXT" "M" P17 (* 1.1 h) 0 (rtos cvt 2 2)
"TEXT" "M" P18 (* 1.1 h) 0 (rtos tdt 2 2)
"TEXT" "M" P19 (* 1.1 h) 0 (rtos klt 2 2)
"TEXT" "M" P20 (* 1.1 h) 0 (strcat (rtos k 2 0) " VUNG") )
(command "undo" "e")
(setvar "OSMODE" laos)
(setvar "clayer" oldla)
(setvar "cmdecho" 1)
(princ)
)
Hy vọng đúng ý bạn.
Riêng cái vụ khối lượng thì không thể có đơn vị là kg/m được nên mình đã tự sửa thành kg. Nếu bạn không thích thì tự sửa lại nhé.
  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#80 quickandfine

quickandfine

    biết lệnh copy

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

Đã gửi 11 July 2012 - 11:39 AM

Cảm ơn Anh Tuệ rất nhiều. :bigsmile:
Đây là lisp đã đã được sửa để tính diện tích cả hình có lỗ khoét và không có lỗ khoét.

(defun c:bdt()(setvar "cmdecho" 0)(command "undo" "begin")(setq lacol (getvar "CEColor"))(setq ladin (getvar "dimzin"))(setq laos (getvar "osmode"))  (if (not tl) (setq tl 1))(if (not h) (setq h 1))(setq tl1 (getreal (strcat "\nty le ban ve < 1/" (rtos tl 2 0) " >: 1/"))    caot1 (getreal (strcat "\nCao text < " (rtos h 2 2) " >: ")))(if tl1 (setq tl tl1))(if caot1 (setq h caot1))(setq k 0 tdt 0)(setvar "dimzin" 0)(setvar "OSMODE" 0)(setq PT (getpoint "\nChon diem xuat bang thong ke dien tich (mep trai):"))(setq 	P1 (list (+ (car PT)(* 6 h)) (cadr PT))    P2 (list (+ (car PT)(* 22 h)) (cadr PT))    P3 (list (car PT) (- (cadr PT)(* 3 h)))    P4 (list (car P1) (cadr P3))    P5 (list (car P2) (cadr P3))    P6 (list (+ (car PT)(* 11 h)) (+ (cadr PT)(* 2 h)))    P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))    P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h))));setq(command "pline" PT P2 P5 P3 "C"        "pline" P1 P4 ""        "text" "m" P6 (* 1.2 h) 0 "%&#11;&#182;ng th&#232;ng k&#170; di&#214;n t&#221;ch"        "text" "m" P7 h 0 "STT"        "text" "m" P8 h 0 "Di&#214;n t&#221;ch (m2)");command(setq pt1 (getpoint "\n Chon mien tinh dien tich : "))(while (/= pt1 nil)(command "erase" ss "")(setq k (+ 1 k))(command "TEXT" "m" pt1 (* 3 h) 0 (rtos k 2 0))(setq PT (list (car P3) (cadr P3))    P1 (list (+ (car PT)(* 6 h)) (cadr PT))    P2 (list (+ (car PT)(* 22 h)) (cadr PT))    P3 (list (car PT) (- (cadr PT)(* 3 h)))    P4 (list (car P1) (cadr P3))    P5 (list (car P2) (cadr P3))    P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))    P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))    P9 (list (car PT) (- (cadr P3)(* 3 h)))    P10 (list (car P1) (cadr P9))    P11 (list (car P2) (cadr P9))    P12 (list (car P7) (- (cadr P3)(* 1.5 h)))    P13 (list (car P8) (cadr P12))    );setq(setq frome (entlast));; chon doi tuong cuoi cung truoc khi boundary(command "cecolor"4 "-boundary" pt1 "");; boundary(setq toe (entlast));; chon doi tuong cuoi cung sau khi boundary(setq cur frome	ss (ssadd) S 0)(while 	(not (eq cur toe));; chon cac doi tuong tu frome den toe	(setq cur (entnext cur) ss (ssadd cur ss))	(command "area" "S" "O" ss "" "")	(setq dt (getvar "area") S (+ S dt)));while(command "area" "A" "O" "L" "" "")(setq dt (getvar "area"))(setq S (* (+ S (* dt 2)) tl tl) tdt (+ s tdt))  (setvar "CEColor" lacol)(command "pline" PT P2 P5 P3 "C"     "pline" P1 P4 ""     "text" "m" P7 h 0 (rtos k 2 0)     "text" "m" P8 h 0 (rtos s 2 2))(setq pt1 (getpoint (strcat "\nTong dien tich = " (rtos tdt 2 3) "m2. chon mien do tiep theo..."))));while(command "erase" ss "")(setq ss nil)(setvar "DIMZIN" ladin)(command 	"pline" P3 P9 P11 P5 "C"        "pline" P10 P4 ""        "text" "m" P12 h 0 "T&#230;ng"        "text" "m" P13 h 0 (rtos tdt 2 2));command(setvar "OSMODE" laos)(command "undo" "end")(setvar "cmdecho" 1))


@vantiteo: Mình đang bận quá, tranh thủ thời gian ngủ trưa để sửa lại lisp này cho mọi người thôi. bạn có thể xem lisp của anh Tuệ để tìm ra chỗ thiếu sót của bạn. lisp của anh Tuệ rất hay.
@xuandao0708: Bạn cần phân biệt tỷ lệ vẽ và tỷ lệ in nhé. lisp này yêu cầu nhập vào tỷ lệ vẽ vì chỉ có tỷ lệ vẽ mới ảnh hưởng trực tiếp đến kết quả tính toán. theo như bạn nói thì thì tỷ lệ 1/500 của bạn chính là tỷ lệ in của bản vẽ ra giấy. còn thực chất bản vẽ của bạn vẫn được vẽ với tỷ lệ 1/1. nghĩa là 1 đơn vị vẽ trong cad sẽ tương ứng với 1 đơn vị đo ngoài thực địa.

Chào bác Thaistreetz. Bác cho em hỏi chút ạ.
-Nếu em muốn phần tỷ lệ trong đoạn lisp này luôn là 1:1 thì em phải sửa thế nào ạ?
  • 0