Chuyển đến nội dung
Diễn đàn CADViet
buiquangnam

[Yêu cầu] viết lisp thống kê bản vẽ

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

Các bác cho em hỏi  vấn đề này chút ạ .Em có dùng lisp này của bác gia_bach để thống kê bản vẽ , nhưng giờ gặp chút rác rối là đối với những bản vẽ có tên bản vẽ nhiều dòng thì lại ko thống kê được,các bác có thể sửa giúp em hay hướng dẫn em sửa với ạ .Cám ơn 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

Update fix lỗi trên cad 2012-64 bi

t.exblk_1.jpg

 

download here 

Cảm ơn anh gia_bach đã viết lisp hay cho anh em sử dụng. Nhưng sao em tải về lại không dùng được :(  (phiên bản dùng thử này đã hết hạn). Em thấy anh gia_bach đã publish rồi mà. Em cũng đang cần lisp này. Hy vọng anh gửi cho em lisp với ạ. :)

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
55 phút trước, singfeng đã nói:

link bịa die hết rồi ạ. Có ai giúp em với ạ

 

Mời bạn tham khảo nếu có nhu cầu nhé:

 

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ũng có 1 lisp, các bạn tham khảo nhé:

 

* Thông tin cập nhật truy cập: facebook hoặc bietvecad@gmail.com
https://www.cadviet.com/forum/topic/173984-lisp-bi%E1%BA%BFt-v%E1%BA%BD-cad-share/

** Lisp in nhanh bản vẽ:
https://www.youtube.com/playlist?list=PL05frYPpT5LLRHAE9W-osYor9Jbe7nOg-

* Các tiện ích hay:

https://www.youtube.com/channel/UC1hTw22snwp1H47Y1DzmoHA/playlists?view_as=subscriber

 

video:

 

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
Vào lúc 27/10/2016 tại 12:07, vanhaks đã nói:

Cảm ơn anh gia_bach đã viết lisp hay cho anh em sử dụng. Nhưng sao em tải về lại không dùng được :(  (phiên bản dùng thử này đã hết hạn). Em thấy anh gia_bach đã publish rồi mà. Em cũng đang cần lisp này. Hy vọng anh gửi cho em lisp với ạ. :)

bác ơi, b còn lisp ko cho em xin với ạ, thanks 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
Vào lúc 27/1/2010 tại 22:23, Tue_NV đã nói:

Để Tue_NV giúp anh gia_bach một tay nhé :

Các bạn chạy lại code thử và góp ý nhé :

 


(defun c:draw_name (/ att doc i kyhieu lst lstatt msp pt row ss tblobj ten) ;Bang ten ban ve
;; By : Gia Bach, Copyright- December 2009 ;;
;; Contact : gia_bach @ www.CadViet.com ;;
(defun VxGetAtts (Obj)
(mapcar
'(lambda (Att)
(cons (vla-get-TagString Att)
(vla-get-TextString Att) ) )
(vlax-invoke Obj 'GetAttributes) ))
(if (> (atof (substr (getvar "ACADVER") 1 4)) 16.0) (progn

(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 66 1)(cons 2 "KHUNG CHUAN SEICO"))))
(progn
(vl-load-com)
(setq doc (vla-get-ActiveDocument (vlax-get-Acad-Object))
msp (vla-get-modelspace doc))
(foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
(setq lstAtt (VxGetAtts (vlax-ename->vla-object e))
kyhieu (cdr (assoc "DWNNO" lstAtt))
ten (cdr (assoc "DRAWING1" lstAtt)))
(setq lst (cons (cons kyhieu ten) lst)) )
(setq lst (vl-sort lst '(lambda (x y) ((atoi (substr (car y) 4 (- (strlen (car y)) 3)))
) ) ))
(setq i 1
row 2
pt (getpoint "\nDiem dat Bang :")
TblObj (vla-addtable msp (vlax-3d-point pt) (+ (length lst) 2) 3 15 100))
(vla-put-vertcellmargin TblObj 4)
(vla-SetColumnWidth TblObj 0 50)
(mapcar '(lambda (x)(vla-setTextHeight TblObj x 5))
(list acTitleRow acHeaderRow acDataRow) )
(mapcar '(lambda (x)(vla-setAlignment TblObj x 2))
(list acTitleRow acHeaderRow acDataRow))
(vla-setText TblObj 0 0 "list of drawings") 
(vla-setText TblObj 1 0 "STT")
(vla-setText TblObj 1 1 "Ten ban e")
(vla-setText TblObj 1 2 "Ky hieu")
(foreach pt lst
(vla-setText TblObj row 0 (itoa i))
(vla-setText TblObj row 1 (cdr pt))
(vla-setText TblObj row 2 (car pt))
(setq row (1+ row) i (1+ i))
)
(vlax-release-object TblObj)
(princ lst) ) ) )
(alert "\nPhien ban Cad cua ban khong ho tro tao Bang (TABLE)")
))
 

 

@anh gia_bach : Hàm vl-sort nó sắp xếp các kí tự chuỗi theo alphabet.

Ví dụ như List :

(setq L (list "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "98" "99" "100"))

 

khi sử dụng vl-sort nó sắp xếp các kí tự chuỗi theo alphabet.

=> Kết quả sẽ trả về như thế này thì không theo ý của User

("1" "10" "100" "11" "12" "2" "3" "4" "5" "6" "7" "8" "9" "98" "99")

-> Nó ưu tiên sắp xếp kí tự "1.." trước mà anh

 

Nhưng khi ta set nó về số thì sẽ đúng theo ý User

.Ví dụ :

(setq L (list 1 2 3 4 5 6 7 8 9 10 11 12 99 100))

(vl-sort L '

(1 2 3 4 5 6 7 8 9 10 11 12 99 100)

thì khi sử dụng vl-sort theo ý của mình nên em đã sử dụng hàm atoi để chuyển chuõi kí tự về dạng số rồi so sánh chúng với nhau để theo ý của mình

 

Anh gia_bach cho Tue_NV hỏi thêm về chổ này một chút :

(mapcar '(lambda (x)(vla-setTextHeight TblObj x 5))

(list acTitleRow acHeaderRow acDataRow) )

(mapcar '(lambda (x)(vla-setAlignment TblObj x 2))

(list acTitleRow acHeaderRow acDataRow))

 

4 mã code này em chưa rõ ý nghĩa của nó lắm. Anh có thể giải thích dùm em 1 chút nhé.

Cảm ơn anh

Em copy dòng lệnh của anh mà chạy trên cad 2007 ko được, ko báo lỗi gì cả, anh và mọi người còn lisp ko cho em xin lại với ạ. Em cảm ơn mọi người rất nhiều!

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

×