Đến nội dung


Hình ảnh
- - - - -

[Nhờ viết Lisp] mình muốn nhờ viết lisp tính diện tích cho cad 2007 hoặc cao hơn


  • Please log in to reply
9 replies to this topic

#1 Bùi Việt Dũng

Bùi Việt Dũng

    Chưa sử dụng CAD

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

Đã gửi 15 February 2012 - 04:22 PM

ở trong cad 2004 có lisp tính diện tích là mutiarea2004.VLX rất hay. Có thể chọn dc số diện tích muốn tính,tích nhiều vùng diện tích và k tính vùng diện tích trùng nhau,xuất text ra màn hình và ghi kết quả diện tích ra 1 file *.txt theo từng cột 1 ứng với loại diện tích tương ứng. nói chung là rất tiện lợi
e muốn nhờ các bác cao thủ có thể làm 1 lisp dạng như kiểu thế này chạy dc trong cad 2007.
thank các bác nhiều.
  • -1

#2 ketui

ketui

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 15 February 2012 - 04:36 PM

Yêu cầu thì phải cụ thể chứ " như kiểu thế này " không chơi. Lăn tăn cái nửa sao 2004 được mà 2007 không được?
  • 0

#3 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 23 February 2012 - 08:00 AM

mình có 1 lisp cũng khá hay nhưng không thỏa mãn tất cả các yêu cầu của bạn.
đây là lisp mình sưu tầm và có chỉnh sửa thêm

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=59486
(Defun c:DT()
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(command "osnap" "none")
(if (null am)(setq am "1"))
(Setq temp1 T)
(While temp1
(setq pt (strcat "\nHe so ("am") \<Chon diem>: "))
(Initget "h H")
(setq str (getpoint pt))
(Cond
((= str "h") (setq am (getstring (strcat"\nNhap he so <"am"> :"))))
((= str "H") (setq am (getstring (strcat"\nNhap he so <"am"> :"))))
(Progn
(Setq pt str)
(setq temp1 nil)
)
)
)
(setq s 0)
(progn
; (setq pt (getpoint "\n Chon diem: "))
(while pt
(setq entold (cdr (assoc 5 (entget (entlast)))))
(command "boundary" pt "")
(setq entnew (cdr (assoc 5 (entget (entlast)))))
(if (/= entold entnew)
(progn
(setq entnew (entget (entlast)))
(if (assoc 62 entnew)
(setq entnew (subst (cons 62 (+ 3 (cdr (assoc 62 entnew)))) (assoc 62 entnew) entnew))
(setq entnew (append entnew (list (cons 62 (+ 3 (cdr (assoc 62 (tblsearch "layer" (cdr (assoc 8 entnew))))))))))
)


(entmod entnew)
(Command "area" "o" (entlast))
(setq s (+ s (getvar "area")))
(setq pt (getpoint "\n Chon diem: "))
(entdel (entlast))
)
(progn
(princ "chon diem sai")
(setq pt (getpoint "\n Chon diem: "))
)
)
)
)

(command "osnap" "intersection")
(setq am (atof am))
(setq s (* s am))
(setq point (getpoint "\n Chon diem ghi dien tich: "))
(setq th (getvar "textsize"))
(setq th (getstring (strcat "\nChieu cao chu <"(rtos th)"> :")))
;(princ "\nDien tich nhung vung vua chon la: "s)
(command "TEXT" point th 0 (rtos s 2 2))
(setq am (rtos am))
(setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA** TAILIEUKYTHUAT.COM")
(princ )
)

  • 1

#4 f4_ars

f4_ars

    Chưa sử dụng CAD

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

Đã gửi 17 March 2012 - 11:27 PM

Yêu cầu thì phải cụ thể chứ " như kiểu thế này " không chơi. Lăn tăn cái nửa sao 2004 được mà 2007 không được?


cái lisp đấy chỉ chạy trong cad 2004 dc thôi,2007 k chạy dc,mình muốn nhờ các bác viết giùm lisp có các tính năng như sau
- tính tổng diện tích các hình kín với từng tỉ lệ tương ứng (ứng với từng mặt cắt có thể có nhiều loai diện tích)
- xuất kết quả tính diện tích ra màn hình tương ứng với từng loại diện tích
- xuất kết quả ra file txt or excel theo dạng cột tương ứng với từng loại diện tích
rất mong sự giúp đỡ của các bác
  • 0

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 18 March 2012 - 07:23 AM


cái lisp đấy chỉ chạy trong cad 2004 dc thôi,2007 k chạy dc,mình muốn nhờ các bác viết giùm lisp có các tính năng như sau
- tính tổng diện tích các hình kín với từng tỉ lệ tương ứng (ứng với từng mặt cắt có thể có nhiều loai diện tích)
- xuất kết quả tính diện tích ra màn hình tương ứng với từng loại diện tích
- xuất kết quả ra file txt or excel theo dạng cột tương ứng với từng loại diện tích
rất mong sự giúp đỡ của các bác

1). Cái màu đỏ này hơi khó hiểu. Nghi là bạn chưa cài Tool Express. Còn không, bạn phải nó rõ "không chạy được" là thế nào: load không được, bị lỗi gì...?
2). Post cái lisp lên xem + Post cái bản vẽ lên xem. Yêu cầu của bạn chưa rõ ràng nên khó mần lisp giúp bạn được.
  • 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.


#6 Cuongkieu

Cuongkieu

    biết zoom

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

Đã gửi 27 April 2012 - 11:15 AM

Bác nào giúp em chỉnh cái lisp tính diện tích này với. Em muốn khi điền text thì nó chỉ ra số diện tích+m2 thôi còn bỏ tên layer ở đằng trước. thanks các bác
  • 0

#7 Cuongkieu

Cuongkieu

    biết zoom

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

Đã gửi 27 April 2012 - 11:15 AM

http://www.cadviet.c..._152139_tkh.lsp
  • 0

#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 27 April 2012 - 11:32 AM


(defun c:tkh (/ lst msp pt ss txtsiz)
(vl-load-com)
(if (setq ss (ssget(list (cons 0 "HATCH"))))
(progn
(foreach e (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
(setq lst (cons (vla-get-area e) lst))
(setq lst (vl-sort lst '(lambda (x y) (< x y)))
tl 0.000001
pt (getpoint "\nDiem dat Bang :" )
txtsiz (* (getvar "dimtxt")(getvar "dimscale"))
msp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(foreach e lst
(vla-addtext msp (car e) (vlax-3d-point pt) txtsiz )
(vla-addtext msp
(strcat (rtos (* (cdr e) tl) 2 2) " m2") (vlax-3d-point (polar pt 0 (* 10 txtsiz))) txtsiz )
(setq pt (polar pt (/ pi -2) (* 1.5 txtsiz))) ) )
(alert "Khong chon duoc Hatch.") )
(princ))

  • 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.


#9 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 April 2012 - 11:36 AM

Bạn phải đọc cái dòng người ta (mình) ghi chú : Lisp thống kê diện tích Hatch theo Layer :)
Lisp này mình viết có nhiều phiên bản lắm cơ mà nhỉ :o
  • 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


#10 Cuongkieu

Cuongkieu

    biết zoom

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

Đã gửi 27 April 2012 - 01:20 PM

Bác xem lại giúp em với, sao nó không chạy được
  • 0