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  
Bùi Việt Dũng

[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

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

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

  • Vote giảm 1

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

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?

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

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 )
)

  • Vote tăng 1

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

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

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

 

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.

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

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

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

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

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

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  

×