Đến nội dung


Hình ảnh
- - - - -

NHờ các bác sửa giùm em lisp này


  • Please log in to reply
5 replies to this topic

#1 tranlaogia

tranlaogia

    biết lệnh scale

  • Members
  • PipPipPip
  • 142 Bài viết
Điểm đánh giá: 16 (tàm tạm)

Đã gửi 07 January 2010 - 03:38 PM

http://www.cadviet.c...dien_tichqq.lsp
lisp này của em khi tính diện tích chỉ chọn được tỷ lệ bản vẽ lần đầu và sau đó cứ tính diện tích theo tỷ lệ cũ. Trong bản vẽ của em có nhiều tỷ lệ bản vẽ nên khi sử dụng lisp này để tính diện tích thì phải tắt bản vẽ và bật lại bvẽ rồi mới load lisp tính diện tích này rồi mới nhập tỷ lệ bản vẽ mới, làm như vậy thì bất tiện quá. em mong các bác sửa giùm em để khi em tính diện tích các tỷ lệ khác nhau thì nhập lại được tỷ lệ bản vẽ đó.
  • 0

#2 thonghoang1

thonghoang1

    biết vẽ polygon

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

Đã gửi 07 January 2010 - 08:51 PM

tặng bạn lisp tính diện tích này nè,dùng thử xe, lênh la dt hoặc dt0. có thể lần đầu nó sẽ yêu cầu bạn cho chiều cao chữ đấy nha,dùng thử và cho y kiến
  • 0

#3 thonghoang1

thonghoang1

    biết vẽ polygon

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

Đã gửi 07 January 2010 - 09:03 PM

quên gởi file(http://www.cadviet.c.../progam05_1.rar)
  • 0

#4 xuandao0708

xuandao0708

    biết lệnh scale

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

Đã gửi 07 January 2010 - 09:15 PM

Không biết bạn có phải bên nghành trắc địa không? Nếu phải thì bạn có thể dùng lisp này cũng được vì khi tính diện tích thì mình phải nhập tỷ lệ bản vẽ.
Tên lệnh là: dt2, nếu bạn không muốn là dt2 thì bạn có thể sữa lại theo ý bạn ngay tại dòng (defun c:dt2 thì dt2 thay bằng 1 tên khác). Lisp này mình cũng sưu tầm được trên Cadviet.com

;Tinh Dt co mien khoe rong ben trong va lap bang
(defun c:dt2()
(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 "Bang Thong Ke DT"
"text" "m" P7 h 0 "STT"
"text" "m" P8 h 0 "Dien tich (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 500 500)) 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 "Tong"
"text" "m" P13 h 0 (rtos tdt 2 2)
);command
(setvar "OSMODE" laos)
(command "undo" "end")
(setvar "cmdecho" 1)
)

  • 0

#5 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 07 January 2010 - 10:04 PM

http://www.cadviet.c...dien_tichqq.lsp
lisp này của em khi tính diện tích chỉ chọn được tỷ lệ bản vẽ lần đầu và sau đó cứ tính diện tích theo tỷ lệ cũ. Trong bản vẽ của em có nhiều tỷ lệ bản vẽ nên khi sử dụng lisp này để tính diện tích thì phải tắt bản vẽ và bật lại bvẽ rồi mới load lisp tính diện tích này rồi mới nhập tỷ lệ bản vẽ mới, làm như vậy thì bất tiện quá. em mong các bác sửa giùm em để khi em tính diện tích các tỷ lệ khác nhau thì nhập lại được tỷ lệ bản vẽ đó.

Chào bác Trần lão gia,
Hề hề hề, sở dĩ như vậy là do cái hàm (if (= tyle nil) ..... mà ra bác ạ, bác cứ bỏ béng cái dòng code đó đi, đống thời bỏ luôn cả cái hàm (progn.....) là OK.
Nhớ là phải bỏ cả các dấu ngoặc kết thúc của hai hàm này nhé. Nếu không khi load sẽ bị báo lỗi đó và lisp sẽ hổng chịu chạy.
Hề hề hề, chúc bác luôn vui vẻ, mạnh khỏe và .......
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#6 tranlaogia

tranlaogia

    biết lệnh scale

  • Members
  • PipPipPip
  • 142 Bài viết
Điểm đánh giá: 16 (tàm tạm)

Đã gửi 08 January 2010 - 08:49 AM

Chào bác Trần lão gia,
Hề hề hề, sở dĩ như vậy là do cái hàm (if (= tyle nil) ..... mà ra bác ạ, bác cứ bỏ béng cái dòng code đó đi, đống thời bỏ luôn cả cái hàm (progn.....) là OK.
Nhớ là phải bỏ cả các dấu ngoặc kết thúc của hai hàm này nhé. Nếu không khi load sẽ bị báo lỗi đó và lisp sẽ hổng chịu chạy.
Hề hề hề, chúc bác luôn vui vẻ, mạnh khỏe và .......

cám ơn bác. quả đúng là tuyệt vời, chúc bác luôn mạnh khoẻ và hạnh phúc
  • 0