Đến nội dung


Hình ảnh
- - - - -

cho em xin lisp đếm text


  • Please log in to reply
38 replies to this topic

#21 co_khi

co_khi

    biết lệnh rotate

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

Đã gửi 02 December 2013 - 06:54 PM

tks bác nhiều ạ.


  • 0

#22 nhatphong

nhatphong

    biết vẽ circle

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

Đã gửi 23 August 2014 - 07:49 AM

Cách này mình vẫn đang dùng.

Cách làm như sau: Chon một layout (cái layout nào cũng được) sau đó đè phím Shift+ click chuột chọn tất cả các Layout cần in... click chuột phải chon "Publish Selected Layouts" ---> hiện cái bảng ---> chọn tiếp Publish (hoặc Enter). Xong. Đi cafe, hút thuốc tý lấy bản vẽ...

Nhưng để làm được việc này thì: các layout của bạn phải có cùng định dạng: máy in, khổ giấy, nét in..... tốt nhất, trước khi lồng layout, bạn lồng trước 1 cái "LÀM MẪU".. sau đó in thử.. thấy ok thì dùng cái layout này Copy thành nhiều cái layout khác và edit....

:)

 


Không hiểu ý bạn.
- chức năng cho phép đếm 1 đối tượng : ý bạn là đếm các LINE, ARC, ... ?
Nếu đúng, bạn có thể sử dụng Tools -> Palettes -> Properties để xem.
hoặc tham khảo Lisp Thống kê Block : http://www.cadviet.c...o...ost&p=94041

Lisp Thống kê Text trên bản vẽ .
Bổ sung sắp xếp TEXT và tạo bảng (Table)
tkt_1.jpg

(defun c:tkt(/ ent h height i len0 lst msp pt row ss str str0 str_len tblobj width0 width1); thong ke text;;  By : Gia Bach, Copyrightゥ December 2010                    ;;;;  Contact : gia_bach @  www.CadViet.com                      ;;  (defun TxtWidth (val msp / txt minp maxp)    (vla-getBoundingBox (setq txt (vla-AddText msp val (vlax-3d-point '(0 0 0)) 1)) 'minp 'maxp)    (vla-Erase txt)    (-(car(vlax-safearray->list maxp))(car(vlax-safearray->list minp)))  )  ;main  (if (> (atof (substr (getvar "ACADVER") 1 4)) 16.0)    (progn      (vl-load-com)      (princ "\nChon cac Text de thong ke :")      (if (setq ss (ssget(list (cons 0 "TEXT"))))	(progn	  (setq i -1 len0 8)	  (while (setq ent (ssname ss (setq i (1+ i))))	    (setq str(cdr(assoc 1 (entget ent ))))	    (if (> (setq str_len (strlen str)) len0)	      (setq str0 str len0 str_len) )	    (if (not (assoc str lst))	      (setq lst (cons (cons str 1) lst))	      (setq lst (subst (cons str (1+ (cdr (assoc str lst))))			       (assoc str lst) lst)))	    )	  (setq lst (vl-sort lst '(lambda (x y) (< (car x) (car y))))		msp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))	  (or *h* (setq *h* 175))	  (initget 6)	  (setq h (getreal (strcat "\nChieu cao chu <" (rtos *h*) "> :")))	  (if h (setq *h* h) (setq h *h*) )	  (setq width0 (* 3 h(TxtWidth "STT" msp))		height (* 2 h))	  (if str0	    (setq width1 (* 1.2 h(TxtWidth (strcase str0) msp)))	    (setq width1 (* 2 h(TxtWidth "Gia tri" msp))))	  (if (> h 3)	    (setq width0 (* (fix (/ width0 10))10)		  width1 (* (fix (/ width1 10))10)		  height (* (fix (/ height 5))5)))	  (setq pt (getpoint "\nDiem dat Bang :")		TblObj (vla-addtable msp (vlax-3d-point pt) (+ (length lst) 2) 3 height width1))	  (vla-put-regeneratetablesuppressed TblObj :vlax-true)	  (vla-put-vertcellmargin TblObj (* 0.25 h))	  (vla-put-horzcellmargin TblObj (* 0.75 h))	  (vla-SetColumnWidth TblObj 0 width0)	  (vla-SetColumnWidth TblObj 2 (* 2 h(TxtWidth "So luong" msp)))	  (mapcar '(lambda (x)(vla-setTextHeight TblObj x h))		  (list acTitleRow acHeaderRow acDataRow) )	  (mapcar '(lambda (x)(vla-setAlignment TblObj x 8))		  (list acTitleRow acHeaderRow acDataRow))	  (vl-catch-all-error-p (vl-catch-all-apply (function(lambda () (vla-MergeCells TblObj 0 0 0 2)) )))	  (vla-setText TblObj 0 0 "Bang thong ke")	  (vla-setText TblObj 1 0 "STT")	  (vla-setText TblObj 1 1 "Gia tri")	  (vla-setText TblObj 1 2 "So luong")	  (setq i 1 row 2 )	  (foreach e lst	    (vla-setText TblObj row 0 (itoa i))	    (vla-setText TblObj row 1 (car e))	    (vla-setText TblObj row 2 (cdr e))	    (vla-SetCellAlignment TblObj row 1 7)	    (vla-SetCellAlignment TblObj row 2 9)	    (setq row (1+ row) i (1+ i))	)	  (vla-put-regeneratetablesuppressed TblObj :vlax-false)	  (vlax-release-object TblObj)	  )	(alert "Khong chon duoc Text.")    )      (princ)  )    (alert "\nPhien ban Cad cua ban khong ho tro tao Bang (TABLE)")   )  )

Mình down về rồi dùng lệnh tkt của bác gia bạch không dùng được,hay tại phiên bản autocad 2014 không dùng được lisp này


  • 0

#23 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 21 May 2015 - 05:03 PM

Không hiểu ý bạn.
- chức năng cho phép đếm 1 đối tượng : ý bạn là đếm các LINE, ARC, ... ?
Nếu đúng, bạn có thể sử dụng Tools -> Palettes -> Properties để xem.
hoặc tham khảo Lisp Thống kê Block : http://www.cadviet.c...o...ost&p=94041

Lisp Thống kê Text trên bản vẽ .
Bổ sung sắp xếp TEXT và tạo bảng (Table)
tkt_1.jpg

(defun c:tkt(/ ent h height i len0 lst msp pt row ss str str0 str_len tblobj width0 width1); thong ke text;;  By : Gia Bach, Copyrightゥ December 2010                    ;;;;  Contact : gia_bach @  www.CadViet.com                      ;;  (defun TxtWidth (val msp / txt minp maxp)    (vla-getBoundingBox (setq txt (vla-AddText msp val (vlax-3d-point '(0 0 0)) 1)) 'minp 'maxp)    (vla-Erase txt)    (-(car(vlax-safearray->list maxp))(car(vlax-safearray->list minp)))  )  ;main  (if (> (atof (substr (getvar "ACADVER") 1 4)) 16.0)    (progn      (vl-load-com)      (princ "\nChon cac Text de thong ke :")      (if (setq ss (ssget(list (cons 0 "TEXT"))))	(progn	  (setq i -1 len0 8)	  (while (setq ent (ssname ss (setq i (1+ i))))	    (setq str(cdr(assoc 1 (entget ent ))))	    (if (> (setq str_len (strlen str)) len0)	      (setq str0 str len0 str_len) )	    (if (not (assoc str lst))	      (setq lst (cons (cons str 1) lst))	      (setq lst (subst (cons str (1+ (cdr (assoc str lst))))			       (assoc str lst) lst)))	    )	  (setq lst (vl-sort lst '(lambda (x y) (< (car x) (car y))))		msp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))	  (or *h* (setq *h* 175))	  (initget 6)	  (setq h (getreal (strcat "\nChieu cao chu <" (rtos *h*) "> :")))	  (if h (setq *h* h) (setq h *h*) )	  (setq width0 (* 3 h(TxtWidth "STT" msp))		height (* 2 h))	  (if str0	    (setq width1 (* 1.2 h(TxtWidth (strcase str0) msp)))	    (setq width1 (* 2 h(TxtWidth "Gia tri" msp))))	  (if (> h 3)	    (setq width0 (* (fix (/ width0 10))10)		  width1 (* (fix (/ width1 10))10)		  height (* (fix (/ height 5))5)))	  (setq pt (getpoint "\nDiem dat Bang :")		TblObj (vla-addtable msp (vlax-3d-point pt) (+ (length lst) 2) 3 height width1))	  (vla-put-regeneratetablesuppressed TblObj :vlax-true)	  (vla-put-vertcellmargin TblObj (* 0.25 h))	  (vla-put-horzcellmargin TblObj (* 0.75 h))	  (vla-SetColumnWidth TblObj 0 width0)	  (vla-SetColumnWidth TblObj 2 (* 2 h(TxtWidth "So luong" msp)))	  (mapcar '(lambda (x)(vla-setTextHeight TblObj x h))		  (list acTitleRow acHeaderRow acDataRow) )	  (mapcar '(lambda (x)(vla-setAlignment TblObj x 8))		  (list acTitleRow acHeaderRow acDataRow))	  (vl-catch-all-error-p (vl-catch-all-apply (function(lambda () (vla-MergeCells TblObj 0 0 0 2)) )))	  (vla-setText TblObj 0 0 "Bang thong ke")	  (vla-setText TblObj 1 0 "STT")	  (vla-setText TblObj 1 1 "Gia tri")	  (vla-setText TblObj 1 2 "So luong")	  (setq i 1 row 2 )	  (foreach e lst	    (vla-setText TblObj row 0 (itoa i))	    (vla-setText TblObj row 1 (car e))	    (vla-setText TblObj row 2 (cdr e))	    (vla-SetCellAlignment TblObj row 1 7)	    (vla-SetCellAlignment TblObj row 2 9)	    (setq row (1+ row) i (1+ i))	)	  (vla-put-regeneratetablesuppressed TblObj :vlax-false)	  (vlax-release-object TblObj)	  )	(alert "Khong chon duoc Text.")    )      (princ)  )    (alert "\nPhien ban Cad cua ban khong ho tro tao Bang (TABLE)")   )  )

Bác nào check lại hộ mình sao lỗi này với, khi load lisp thì nó báo:  APPLOAD tkt.lsp successfully loaded. Command: ; error: malformed list on input


  • 0

#24 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 21 May 2015 - 07:19 PM

Bác nào check lại hộ mình sao lỗi này với, khi load lisp thì nó báo:  APPLOAD tkt.lsp successfully loaded. Command: ; error: malformed list on input

Lỗi này là do thiếu dấu ngoặc ")"  (bên phải)

Bạn kiểm tra từng dòng xem thế nào


  • 1

#25 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 22 May 2015 - 07:21 AM

Bác nào check lại hộ mình sao lỗi này với, khi load lisp thì nó báo:  APPLOAD tkt.lsp successfully loaded. Command: ; error: malformed list on input

Lỗi do format file không xuống dòng.

conghoa dùng Lisp cũng có "thâm niên" rồi, ráng vận động 1 chút , đưa code vào VLIDE "nhấn 2 cái enter" là chạy được.


  • 1

#26 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 22 May 2015 - 08:47 AM

Lỗi do format file không xuống dòng.

conghoa dùng Lisp cũng có "thâm niên" rồi, ráng vận động 1 chút , đưa code vào VLIDE "nhấn 2 cái enter" là chạy được.

Cảm ơn gia_bach chỉ giáo, nói về "thâm niên" thì conghoa cũng chỉ biết dùng thôi chứ ít khi để ý đến code vì nói thật là khả năng tư duy không "ngon" lắm, cũng cố học code mấy lần ko được nên đành biết thân biết phận chỉ biết dùng thôi :)


  • 0

#27 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 25 May 2015 - 06:49 PM

Lỗi do format file không xuống dòng.

conghoa dùng Lisp cũng có "thâm niên" rồi, ráng vận động 1 chút , đưa code vào VLIDE "nhấn 2 cái enter" là chạy được.

Lisp hay quá mà down về làm như bác nói mà không được, mình gà mờ, mong giúp đỡ


  • 0

#28 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 26 May 2015 - 08:02 AM

Lisp hay quá mà down về làm như bác nói mà không được, mình gà mờ, mong giúp đỡ

Gạo nấu thành cơm rồi, chỉ việc xới ra chén mà làm không được ???

Mà dùng không được, sao biết là hay ??? 

 

Dĩ nhiên không phải bấm ở đâu cũng được. Tham khảo hình 

15454_tkt.png


  • 2

#29 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 26 May 2015 - 08:30 AM

Thanks bác nhiều nhé, hehe, thông cảm, do lần đầu tiên biết lệnh VLIDE!!


  • 0

#30 nguyenthanhtruc

nguyenthanhtruc

    biết zoom

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

Đã gửi 20 September 2015 - 05:27 PM

Thanks bác nhiều nhé, hehe, thông cảm, do lần đầu tiên biết lệnh VLIDE!!

Anh ơi, em không biết gì về lisp cả nhưng em cần lisp này lắm anh biết sai chỗ nào không? anh sửa lại gửi cho em xin được không. EM cám ơn anh và mấy bác trong diễn đàn nhiều ah, vì qua diễn đàn giúp ích em rất nhiều. Em Thanks các bác nhiều ah.


  • -1

#31 Kieu Tan

Kieu Tan

    biết vẽ rectang

  • Members
  • PipPip
  • 87 Bài viết
Điểm đánh giá: -23 (kém)

Đã gửi 20 September 2015 - 09:36 PM

Đúng rồi, 2 dòng bạn phát hiện chưa hoàn chỉnh.
Update :

(defun c:tkt (/ lst msp pt ss str txtsiz)  (vl-load-com)    (if (setq ss (ssget(list (cons 0 "TEXT"))))    (progn      (foreach e (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))	(setq str (vla-get-TextString e))	(if (not (assoc str lst))	  (setq lst (cons (cons str 1) lst))	  (setq lst (subst (cons str (1+ (cdr (assoc str lst))))			   (assoc str lst) lst)))	)      (setq lst (vl-sort lst '(lambda (x y) (< (cdr x) (cdr y))))	    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 (cdr e) (vlax-3d-point pt) txtsiz )	(vla-addtext msp (car e) (vlax-3d-point (polar pt 0 (* 5 txtsiz))) txtsiz )	(setq pt (polar pt (/ pi -2) (* 1.5 txtsiz)))	)      )    (alert "Khong chon duoc Text.")    )  (princ))

Bạn gia_bach có thể sửa sao cho lsp chạy được trong môi trường làm việc model và layout luôn giúp mình với

Lsp này chỉ chạy được trong môi trường làm việc model mà thôi, có những lúc mình cần thống kê bên môi trường làm việc layout. Thanks bạn! 


  • 0

#32 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 673 Bài viết
Điểm đánh giá: 314 (khá)

Đã gửi 20 September 2015 - 10:28 PM

Thử cái này xem:
(defun c:tkt  (/ lst msp pt ss str txtsiz-0 txtsiz doc)
  (vl-load-com)
  (if (setq ss (ssget (list (cons 0 "TEXT"))))
    (progn (foreach e  (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
             (setq str      (vla-get-TextString e)
                   txtsiz-0 (vla-get-height e))
             (if (not (assoc str lst))
               (setq lst (cons (cons str 1) lst))
               (setq lst (subst (cons str (1+ (cdr (assoc str lst)))) (assoc str lst) lst))))
           (or (setq txtsiz (getreal (strcat "\nChieu cao Text trong bang thong ke <" (rtos txtsiz-0 2 2) ">: ")))
               (setq txtsiz txtsiz-0))
           (setq lst (vl-sort lst '(lambda (x y) (< (cdr x) (cdr y))))
                 pt  (getpoint "\nDiem dat Bang :")
                 doc (vla-get-ActiveDocument (vlax-get-Acad-Object))
                 msp (if (zerop (vla-get-activespace doc))
                       (if (= (vla-get-mspace doc) :vlax-true)
                         (vla-get-modelspace doc)
                         (vla-get-paperspace doc))
                       (vla-get-modelspace doc)))
           (foreach e  lst
             (vla-addtext msp (cdr e) (vlax-3d-point pt) txtsiz)
             (vla-addtext msp (car e) (vlax-3d-point (polar pt 0 (* 5 txtsiz))) txtsiz)
             (setq pt (polar pt (/ pi -2) (* 1.5 txtsiz)))))
    (alert "Khong chon duoc Text."))
  (princ))​

  • 1

#33 Kieu Tan

Kieu Tan

    biết vẽ rectang

  • Members
  • PipPip
  • 87 Bài viết
Điểm đánh giá: -23 (kém)

Đã gửi 21 September 2015 - 06:41 AM

Thử cái này xem:

(defun c:tkt  (/ lst msp pt ss str txtsiz-0 txtsiz doc)
  (vl-load-com)
  (if (setq ss (ssget (list (cons 0 "TEXT"))))
    (progn (foreach e  (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
             (setq str      (vla-get-TextString e)
                   txtsiz-0 (vla-get-height e))
             (if (not (assoc str lst))
               (setq lst (cons (cons str 1) lst))
               (setq lst (subst (cons str (1+ (cdr (assoc str lst)))) (assoc str lst) lst))))
           (or (setq txtsiz (getreal (strcat "\nChieu cao Text trong bang thong ke <" (rtos txtsiz-0 2 2) ">: ")))
               (setq txtsiz txtsiz-0))
           (setq lst (vl-sort lst '(lambda (x y) (< (cdr x) (cdr y))))
                 pt  (getpoint "\nDiem dat Bang :")
                 doc (vla-get-ActiveDocument (vlax-get-Acad-Object))
                 msp (if (zerop (vla-get-activespace doc))
                       (if (= (vla-get-mspace doc) :vlax-true)
                         (vla-get-modelspace doc)
                         (vla-get-paperspace doc))
                       (vla-get-modelspace doc)))
           (foreach e  lst
             (vla-addtext msp (cdr e) (vlax-3d-point pt) txtsiz)
             (vla-addtext msp (car e) (vlax-3d-point (polar pt 0 (* 5 txtsiz))) txtsiz)
             (setq pt (polar pt (/ pi -2) (* 1.5 txtsiz)))))
    (alert "Khong chon duoc Text."))
  (princ))​

Lsp này ok rồi. thanks bạn quocmanh04tt nhiều lắm


  • 0

#34 Sky1988

Sky1988

    Chưa sử dụng CAD

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

Đã gửi 30 October 2015 - 05:12 PM

 Mình đang dùng lệnh để tính những đối tượng text, mtext có tên trùng nhau nhưng không được.

Mình có khoanh vùng lại đếm. 

Nhờ mọi người giúp giùm mình. Mình có đính kèm bản vẽ 

Thank nhiều.

Mình ở đà nẵng. Hân hạnh được giao lưu mọi người.http://www.cadviet.c...iet_bi_tang.dwg


  • 0

#35 pphung183

pphung183

    biết dimstyle

  • Members
  • PipPipPipPipPip
  • 384 Bài viết
Điểm đánh giá: 425 (tốt)

Đã gửi 30 October 2015 - 07:58 PM

 Mình đang dùng lệnh để tính những đối tượng text, mtext có tên trùng nhau nhưng không được.

Mình có khoanh vùng lại đếm. 

Nhờ mọi người giúp giùm mình. Mình có đính kèm bản vẽ 

Thank nhiều.

Mình ở đà nẵng. Hân hạnh được giao lưu mọi người.http://www.cadviet.c...iet_bi_tang.dwg

Đơn giản thôi mà . Nhưng mình đang tự hỏi 5x3 có bằng 5+5+5 không? :wub: Tại sao?  :wub: 


  • 0

#36 pphung183

pphung183

    biết dimstyle

  • Members
  • PipPipPipPipPip
  • 384 Bài viết
Điểm đánh giá: 425 (tốt)

Đã gửi 30 October 2015 - 09:37 PM

127397_toan.jpg

 

Why ???


  • 1

#37 pphung183

pphung183

    biết dimstyle

  • Members
  • PipPipPipPipPip
  • 384 Bài viết
Điểm đánh giá: 425 (tốt)

Đã gửi 01 November 2015 - 12:16 PM

 Mình đang dùng lệnh để tính những đối tượng text, mtext có tên trùng nhau nhưng không được.

Mình có khoanh vùng lại đếm. 

Nhờ mọi người giúp giùm mình. Mình có đính kèm bản vẽ 

Thank nhiều.

Mình ở đà nẵng. Hân hạnh được giao lưu mọi người.http://www.cadviet.c...iet_bi_tang.dwg

Có lẻ bạn chỉ thích xin cho :( ... Haiza...... đúng là bản chất của đa số công chức VN -_-

http://www.cadviet.c...iet_bi_tang.dwg


  • 1

#38 Sky1988

Sky1988

    Chưa sử dụng CAD

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

Đã gửi 02 November 2015 - 05:14 PM

Có lẻ bạn chỉ thích xin cho :( ... Haiza...... đúng là bản chất của đa số công chức VN -_-

http://www.cadviet.c...iet_bi_tang.dwg

Có lẻ bạn giỏi trong lĩnh vực này . Nhưng khi nghe bạn nói như zậy, tôi nghĩ bạn không đủ tư cách để nói chuyện với tôi. Tôi không giỏi nên tôi mới hỏi. Còn nếu bạn không giúp thì có cần thiết phải nói như zậy không. 


  • -1

#39 hoatienii

hoatienii

    biết zoom

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

Đã gửi 24 September 2016 - 01:22 PM

 


Mình down về rồi dùng lệnh tkt của bác gia bạch không dùng được,hay tại phiên bản autocad 2014 không dùng được 

 

bạn phải chuyển cad 2014 3d sang autocad classic thì mới dùng được


  • 0