Đến nội dung


Hình ảnh
- - - - -

[Nhờ giúp đỡ] Lisp đếm block BLKQTY


  • Please log in to reply
38 replies to this topic

#1 pinggun

pinggun

    Chưa sử dụng CAD

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

Đã gửi 21 March 2013 - 06:02 PM

Nhờ mọi người chỉnh sửa giúp lisp đếm block này với ạ.

Hiện tại mình có down ở diễn đàn Cadviet được lisp đếm block nhưng với lisp này mình chỉ đếm được các block có tên không dấu(tên tiếng anh). Khi mình dùng lisp này để đếm các block có dấu thì có hiện ra bảng đếm nhưng không có nội dung đếm.

Mong mọi người giúp mình sửa lại lisp này với.Thanks all!

 

http://www.cadviet.c...517_blkqty4.lsp

Similar topics from web:
AutoLisp

Bài viết đã được chỉnh sửa nội dung bởi pinggun: 21 March 2013 - 06:04 PM

  • -1

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 21 March 2013 - 07:46 PM

Bạn down đc ở đâu sao k post bài hỏi ở đó. lisp mình k đọc n nghe tên thì có vẻ là của bác gia_bach, có lẽ tên đc lấy bằng VL nên khi gặp tên unicode thì có vấn đề chút (ket chua dọc code, đoán vaạy th). sao bạn k post cả cái file đã làm gặp lỗi nữa ?
  • 1

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


#3 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 22 March 2013 - 11:29 AM

Bạn down đc ở đâu sao k post bài hỏi ở đó. lisp mình k đọc n nghe tên thì có vẻ là của bác gia_bach, có lẽ tên đc lấy bằng VL nên khi gặp tên unicode thì có vấn đề chút (ket chua dọc code, đoán vaạy th). sao bạn k post cả cái file đã làm gặp lỗi nữa ?

Chính xác. (do VL không hỗ trợ tốt Unicode)

 

@pinggun :

tìm dòng : (setq blk_name (vla-get-name (vlax-Ename->Vla-Object ent)))

và thay thế bằng : (setq blk_name (cdr (assoc 2 (entget ent))))
 

 

 
  • 2

#4 pinggun

pinggun

    Chưa sử dụng CAD

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

Đã gửi 02 April 2013 - 05:40 PM

Em đã đếm được rồi.Cám ơn bác ketxu và bác gia_bach nhiều nha.


  • 0

#5 HoangSon614

HoangSon614

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 254 Bài viết
Điểm đánh giá: 66 (tàm tạm)

Đã gửi 05 April 2015 - 02:49 PM

 

Chính xác. (do VL không hỗ trợ tốt Unicode)

 

@pinggun :

tìm dòng : (setq blk_name (vla-get-name (vlax-Ename->Vla-Object ent)))

và thay thế bằng : (setq blk_name (cdr (assoc 2 (entget ent))))
 

 

 

 

Lisp rất tuyệt vời, tìm mãi mới được cái lisp đúng với nhu cầu công việc

Xin lỗi gia_bach, nhờ gia_bach bớt chút thời gian sửa giúp mình font có dấu được không? (font vni-helve nhé)

Cảm ơn gia_bach nhiều


  • 0
-~-~-~-~-~-~-~-~-~-~-~-~-~-~
Hôm qua là sự học hỏi nhận được sau 1 ngày
Ngày mai là sự bí ẩn mà chúng ta sẽ khám phá


------------------------------------------
http://www.tailieukythuat.com

#6 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 06 April 2015 - 08:49 AM

Lisp rất tuyệt vời, tìm mãi mới được cái lisp đúng với nhu cầu công việc

Xin lỗi gia_bach, nhờ gia_bach bớt chút thời gian sửa giúp mình font có dấu được không? (font vni-helve nhé)

Cảm ơn gia_bach nhiều

Yêu cầu khá là "mơ hồ", vui lòng gửi file Cad minh hoạ.

Gửi lại List Fix  lỗi tên block tiếng Việt  : 

(defun c:BlkQty (/ blk_id blk_len blk_name blks cur_var ent h header_lsp height i
		 ins j len0 lst_blk msp pt row ss str tblobj width width1 width2 x y)
;;  By : Gia Bach, gia_bach @  www.CadViet.com             ;;
(defun TxtWidth (val h msp / txt minp maxp)
  (setq	txt (vla-AddText msp val (vlax-3d-point '(0 0 0)) h))
  (vla-getBoundingBox txt 'minp 'maxp )
  (vla-Erase txt)
  (-(car(vlax-safearray->list maxp))(car(vlax-safearray->list minp)))  )

(defun GetOrCreateTableStyle (tbl_name / name namelst objtblsty objtblstydic tablst txtsty)
  (setq objTblStyDic (vla-item (vla-get-dictionaries *adoc) "ACAD_TABLESTYLE") )  
  (foreach itm (vlax-for itm objTblStyDic
		 (setq tabLst (append tabLst (list itm))))
    (if (not
	  (vl-catch-all-error-p
	    (setq name (vl-catch-all-apply 'vla-get-Name (list itm)))))
      (setq nameLst (append nameLst (list name)))  )  )
  (if (not (vl-position tbl_name nameLst))
    (vla-addobject objTblStyDic tbl_name "AcDbTableStyle"))
  (setq objTblSty (vla-item objTblStyDic tbl_name)
	TxtSty (variant-value (vla-getvariable *adoc "TextStyle")))
  (mapcar '(lambda (x)(vla-settextstyle objTblSty x TxtSty))
	      (list acTitleRow acHeaderRow acDataRow) )
  (vla-setvariable *adoc "CTableStyle" tbl_name) )
  
(defun GetObjectID (obj)
  (if (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE"))
    (vlax-invoke-method
      (vla-get-Utility *adoc)
      'GetObjectIdString obj :vlax-false )
    (vla-get-Objectid obj)))  
;main
  (if (setq ss (ssget (list (cons 0 "INSERT"))))
    (progn
      (vl-load-com)
      (setq i -1 len0 8)
      (while (setq ent (ssname ss (setq i (1+ i))))
	(setq blk_name (vla-get-name (vlax-Ename->Vla-Object ent)))
	(if (> (setq blk_len (strlen blk_name)) len0)
	  (setq str blk_name len0 blk_len) )	
	(if (not (assoc blk_name lst_blk))
	  (setq lst_blk (cons (cons blk_name 1) lst_blk))
	  (setq lst_blk (subst (cons blk_name (1+ (cdr (assoc blk_name lst_blk))))
			       (assoc blk_name lst_blk) lst_blk)))	    )
      (setq lst_blk (vl-sort lst_blk '(lambda (x y) (< (car x) (car y)) ) ))
      (setq cur_var (mapcar 'getvar '("DYNMODE" "DYNPROMPT")))
      (mapcar 'setvar '("DYNMODE" "DYNPROMPT") '(1 1))
      (initget "Yes No")
      (setq ins (getkword "\nChen ki hieu Block [Yes/No ] <yes> : ") )
      (or ins (setq ins "Yes"))
      (mapcar 'setvar '("DYNMODE" "DYNPROMPT") cur_var)      
      (or *h* (setq *h* (* (getvar "dimtxt")(getvar "dimscale"))))
      (initget 6)
      (setq h (getreal (strcat "\nChieu cao chu <" (rtos *h*) "> :")))      
      (if h (setq *h* h) (setq h *h*) )
      (setq *adoc (vla-get-ActiveDocument (vlax-get-acad-object))
	    msp (vla-get-modelspace *adoc)
	    blks (vla-get-blocks *adoc))      
      (setq width1 (* 2 (TxtWidth "STT" h msp))
	    width (* 2 (TxtWidth "So luong" h msp))
	    height (* 2 h))
      (if str
	(setq width2 (* 1.5 (TxtWidth (strcase str) h msp)))
	(setq width2 width))
      (if (> h 3)
	(setq width (* (fix (/ width 10))10)
	      width1 (* (fix (/ width1 10))10)
	      width2 (* (fix (/ width2 10))10)
	      height (* (fix (/ height 5))5)))
      (GetOrCreateTableStyle "CadViet")
      (setq pt (getpoint "\nDiem dat Bang :")
	    TblObj (vla-addtable msp (vlax-3d-point pt) (+ (length lst_blk) 2) 5 height width))
      (vla-put-regeneratetablesuppressed TblObj :vlax-true)
      (vla-SetColumnWidth TblObj 0 width1)
      (vla-SetColumnWidth TblObj 1 width2)
      (vla-put-vertcellmargin TblObj (* 0.75 h))
      (vla-put-horzcellmargin TblObj (* 0.75 h))
      (mapcar '(lambda (x)(vla-setTextHeight TblObj x h))
	      (list acTitleRow acHeaderRow acDataRow) )
      (mapcar '(lambda (x)(vla-setAlignment TblObj x 2))
	      (list acTitleRow acHeaderRow acDataRow))      
      (vl-catch-all-error-p (vl-catch-all-apply (function(lambda () (vla-MergeCells TblObj 0 0 0 3)) )))
      (vla-setText TblObj 0 0 "Bang thong ke")
      (setq j -1 header_lsp (list "STT" "Ten" "Don vi" "So luong" "Ky hieu")) 
      (repeat (length header_lsp)
	(vla-setText TblObj 1 (setq j (1+ j)) (nth j header_lsp)))
      (setq row 2 i 1)    
      (foreach pt lst_blk
	(setq blk_name (car pt) j -1 )
	(mapcar '(lambda (x)(vla-setText TblObj row (setq j (1+ j)) x))
		(list i blk_name "cai" (cdr pt)))
	(if (= ins "Yes")
	  (vlax-for blk blks
	    (if (= (vla-get-Name blk) blk_name)
	      (vla-SetBlockTableRecordId TblObj row 4 (GetObjectID blk) :vlax-true))) )
	(vla-SetCellAlignment TblObj row 1 7)
	(vla-SetCellAlignment TblObj row 3 9)
	(setq row (1+ row) i (1+ i))	)
      (vla-put-regeneratetablesuppressed TblObj :vlax-false)
      (vlax-release-object TblObj) )  )
  (princ))

  • 2

#7 HoangSon614

HoangSon614

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 254 Bài viết
Điểm đánh giá: 66 (tàm tạm)

Đã gửi 06 April 2015 - 07:33 PM

 

Yêu cầu khá là "mơ hồ", vui lòng gửi file Cad minh hoạ.

Gửi lại List Fix  lỗi tên block tiếng Việt  : 

(defun c:BlkQty (/ blk_id blk_len blk_name blks cur_var ent h header_lsp height i
		 ins j len0 lst_blk msp pt row ss str tblobj width width1 width2 x y)
;;  By : Gia Bach, gia_bach @  www.CadViet.com             ;;
(defun TxtWidth (val h msp / txt minp maxp)
  (setq	txt (vla-AddText msp val (vlax-3d-point '(0 0 0)) h))
  (vla-getBoundingBox txt 'minp 'maxp )
  (vla-Erase txt)
  (-(car(vlax-safearray->list maxp))(car(vlax-safearray->list minp)))  )

(defun GetOrCreateTableStyle (tbl_name / name namelst objtblsty objtblstydic tablst txtsty)
  (setq objTblStyDic (vla-item (vla-get-dictionaries *adoc) "ACAD_TABLESTYLE") )  
  (foreach itm (vlax-for itm objTblStyDic
		 (setq tabLst (append tabLst (list itm))))
    (if (not
	  (vl-catch-all-error-p
	    (setq name (vl-catch-all-apply 'vla-get-Name (list itm)))))
      (setq nameLst (append nameLst (list name)))  )  )
  (if (not (vl-position tbl_name nameLst))
    (vla-addobject objTblStyDic tbl_name "AcDbTableStyle"))
  (setq objTblSty (vla-item objTblStyDic tbl_name)
	TxtSty (variant-value (vla-getvariable *adoc "TextStyle")))
  (mapcar '(lambda (x)(vla-settextstyle objTblSty x TxtSty))
	      (list acTitleRow acHeaderRow acDataRow) )
  (vla-setvariable *adoc "CTableStyle" tbl_name) )
  
(defun GetObjectID (obj)
  (if (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE"))
    (vlax-invoke-method
      (vla-get-Utility *adoc)
      'GetObjectIdString obj :vlax-false )
    (vla-get-Objectid obj)))  
;main
  (if (setq ss (ssget (list (cons 0 "INSERT"))))
    (progn
      (vl-load-com)
      (setq i -1 len0 8)
      (while (setq ent (ssname ss (setq i (1+ i))))
	(setq blk_name (vla-get-name (vlax-Ename->Vla-Object ent)))
	(if (> (setq blk_len (strlen blk_name)) len0)
	  (setq str blk_name len0 blk_len) )	
	(if (not (assoc blk_name lst_blk))
	  (setq lst_blk (cons (cons blk_name 1) lst_blk))
	  (setq lst_blk (subst (cons blk_name (1+ (cdr (assoc blk_name lst_blk))))
			       (assoc blk_name lst_blk) lst_blk)))	    )
      (setq lst_blk (vl-sort lst_blk '(lambda (x y) (< (car x) (car y)) ) ))
      (setq cur_var (mapcar 'getvar '("DYNMODE" "DYNPROMPT")))
      (mapcar 'setvar '("DYNMODE" "DYNPROMPT") '(1 1))
      (initget "Yes No")
      (setq ins (getkword "\nChen ki hieu Block [Yes/No ] <yes> : ") )
      (or ins (setq ins "Yes"))
      (mapcar 'setvar '("DYNMODE" "DYNPROMPT") cur_var)      
      (or *h* (setq *h* (* (getvar "dimtxt")(getvar "dimscale"))))
      (initget 6)
      (setq h (getreal (strcat "\nChieu cao chu <" (rtos *h*) "> :")))      
      (if h (setq *h* h) (setq h *h*) )
      (setq *adoc (vla-get-ActiveDocument (vlax-get-acad-object))
	    msp (vla-get-modelspace *adoc)
	    blks (vla-get-blocks *adoc))      
      (setq width1 (* 2 (TxtWidth "STT" h msp))
	    width (* 2 (TxtWidth "So luong" h msp))
	    height (* 2 h))
      (if str
	(setq width2 (* 1.5 (TxtWidth (strcase str) h msp)))
	(setq width2 width))
      (if (> h 3)
	(setq width (* (fix (/ width 10))10)
	      width1 (* (fix (/ width1 10))10)
	      width2 (* (fix (/ width2 10))10)
	      height (* (fix (/ height 5))5)))
      (GetOrCreateTableStyle "CadViet")
      (setq pt (getpoint "\nDiem dat Bang :")
	    TblObj (vla-addtable msp (vlax-3d-point pt) (+ (length lst_blk) 2) 5 height width))
      (vla-put-regeneratetablesuppressed TblObj :vlax-true)
      (vla-SetColumnWidth TblObj 0 width1)
      (vla-SetColumnWidth TblObj 1 width2)
      (vla-put-vertcellmargin TblObj (* 0.75 h))
      (vla-put-horzcellmargin TblObj (* 0.75 h))
      (mapcar '(lambda (x)(vla-setTextHeight TblObj x h))
	      (list acTitleRow acHeaderRow acDataRow) )
      (mapcar '(lambda (x)(vla-setAlignment TblObj x 2))
	      (list acTitleRow acHeaderRow acDataRow))      
      (vl-catch-all-error-p (vl-catch-all-apply (function(lambda () (vla-MergeCells TblObj 0 0 0 3)) )))
      (vla-setText TblObj 0 0 "Bang thong ke")
      (setq j -1 header_lsp (list "STT" "Ten" "Don vi" "So luong" "Ky hieu")) 
      (repeat (length header_lsp)
	(vla-setText TblObj 1 (setq j (1+ j)) (nth j header_lsp)))
      (setq row 2 i 1)    
      (foreach pt lst_blk
	(setq blk_name (car pt) j -1 )
	(mapcar '(lambda (x)(vla-setText TblObj row (setq j (1+ j)) x))
		(list i blk_name "cai" (cdr pt)))
	(if (= ins "Yes")
	  (vlax-for blk blks
	    (if (= (vla-get-Name blk) blk_name)
	      (vla-SetBlockTableRecordId TblObj row 4 (GetObjectID blk) :vlax-true))) )
	(vla-SetCellAlignment TblObj row 1 7)
	(vla-SetCellAlignment TblObj row 3 9)
	(setq row (1+ row) i (1+ i))	)
      (vla-put-regeneratetablesuppressed TblObj :vlax-false)
      (vlax-release-object TblObj) )  )
  (princ))

Cảm ơn gia_bach đã quan tâm

Ý mình khi chọm điểm đặt bảng, font trong bảng thống kê là tiếng việt có dấu (style, font là Vni-helve)

Rất mong sự giúp đỡ của gia_bach.


  • 0
-~-~-~-~-~-~-~-~-~-~-~-~-~-~
Hôm qua là sự học hỏi nhận được sau 1 ngày
Ngày mai là sự bí ẩn mà chúng ta sẽ khám phá


------------------------------------------
http://www.tailieukythuat.com

#8 HoangSon614

HoangSon614

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 254 Bài viết
Điểm đánh giá: 66 (tàm tạm)

Đã gửi 10 April 2015 - 09:12 PM

Nhờ gia__bach vào xem giúp mình với
cảm ơn bạn
  • 0
-~-~-~-~-~-~-~-~-~-~-~-~-~-~
Hôm qua là sự học hỏi nhận được sau 1 ngày
Ngày mai là sự bí ẩn mà chúng ta sẽ khám phá


------------------------------------------
http://www.tailieukythuat.com

#9 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 11 April 2015 - 06:45 AM

Cảm ơn gia_bach đã quan tâm

Ý mình khi chọm điểm đặt bảng, font trong bảng thống kê là tiếng việt có dấu (style, font là Vni-helve)

Rất mong sự giúp đỡ của gia_bach.

 

Tên Block trong bản vẽ phải đúng font chữ Tiếng Việt  (style, font là Vni-helve) thì bảng mới xuất ra đúng tên Tiếng Việt được bạn HoangSon614 à


  • 1

#10 dihoathienvu

dihoathienvu

    Chưa sử dụng CAD

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

Đã gửi 24 May 2015 - 10:09 PM

 

Nhờ mọi người chỉnh sửa giúp lisp đếm block này với ạ.

Hiện tại mình có down ở diễn đàn Cadviet được lisp đếm block nhưng với lisp này mình chỉ đếm được các block có tên không dấu(tên tiếng anh). Khi mình dùng lisp này để đếm các block có dấu thì có hiện ra bảng đếm nhưng không có nội dung đếm.

Mong mọi người giúp mình sửa lại lisp này với.Thanks all!

 

http://www.cadviet.c...517_blkqty4.lsp

Similar topics from web:
AutoLisp

 

cho mình xin cái lisp đếm block đó đi bạn  gmail: tranngoctanxd@gmail.com

thanks bạn nha


  • 0

#11 vandv

vandv

    Edu level: no10

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

Đã gửi 01 June 2015 - 03:26 PM

Mình sử dụng bảng thống kê một số block theo lisp BlkQty của bác Gia_bach. Mình có một bảng dữ liệu tên đầy đủ block bên excel. Làm thế nào để lấy tên đầy đủ của block trong excel vào table của block. Hay nói cách khác là thay tên ký hiệu block trong bảng cad bằng tên đầy đủ của block từ bảng dữ liệu tất cả các block từ excel.

102116_table_cad1_1.png

 

 

102116_data1.png


  • 0

#12 vandv

vandv

    Edu level: no10

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

Đã gửi 01 June 2015 - 03:39 PM

Trong cad cũng có lệnh DATAEXTRACTION kết xuất nhiều loại dữ liệu. Vì nhiều loại nên để thống kê block đến 8 step, Cộng thêm 8 step để đổi tên ký hiệu block thành tên đầy đủ từ excel. Và kết quả là xuất bảng thống kê nhưng không có số thứ tự và hình ký hiệu block như lisp của bác gia_bach. Mình muốn nhờ các pro tìm phương án thống kê nhanh chóng theo cách.

1. Dùng lisp BlkQty của bác Gia_bach để tạo bảng.

2. Đổi tên ký hiệu block thành tên đầy đủ block từ bảng dữ liệu nguồn block từ excel.


  • 0

#13 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 01 June 2015 - 04:11 PM

Trong cad cũng có lệnh DATAEXTRACTION kết xuất nhiều loại dữ liệu. Vì nhiều loại nên để thống kê block đến 8 step, Cộng thêm 8 step để đổi tên ký hiệu block thành tên đầy đủ từ excel. Và kết quả là xuất bảng thống kê nhưng không có số thứ tự và hình ký hiệu block như lisp của bác gia_bach. Mình muốn nhờ các pro tìm phương án thống kê nhanh chóng theo cách.

1. Dùng lisp BlkQty của bác Gia_bach để tạo bảng.

2. Đổi tên ký hiệu block thành tên đầy đủ block từ bảng dữ liệu nguồn block từ excel.

 

Chào bạn!

Như vậy bạn phải cần thêm "phụ tùng" là file excel diễn giải cho việc mô tả tên Block

Sao bạn không dùng chức năng của CAD là gán "miêu tả" đó cho Description của Block

để khi quét dữ liệu trên CAD là ra bảng đó luôn , không cần file Excel vì đã miêu tả thông qua description của Block

 

Bạn upload File CAD và File Excel của bạn lên đây nhé!


  • 0

#14 vandv

vandv

    Edu level: no10

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

Đã gửi 01 June 2015 - 04:25 PM

Đây là file của mình

Mình chỉ làm 1 số block. Nếu thành công thì mình tạo hẳn 1 file dữ liệu đầy đủ các block lưu trong excel để phục vụ cho việc đổi tên blockhttp://www.cadviet.c...ew_folder_3.rar


  • 0

#15 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 01 June 2015 - 04:29 PM

Theo tui bác làm như này: Bác lấy Lisp của GIABACH ở trên

1. Tìm dòng: (setq blk_name (vla-get-name (vlax-Ename->Vla-Object ent)))

2. Cho con trỏ ở cuối dòng (Enter) rồi chèn cum này vào:

(cond ((= blk_name "D_D.CT1.1") (setq blk_name "CONG TAC 1 CHIEU 10A"))
        ((= blk_name "D_FAN1") (setq blk_name "QUAT HUT GAN TUONG 300x300"))
        ((= blk_name "D_QT1") (setq blk_name "QUAT TRAN SAI CANH 1,4m + DIMMER"))
        ((= blk_name "TEN BLK") (setq blk_name "TEN DAY DU..."))
  )
là ok. Còn bao nhiêu nữa bác tự soạn tương tự trên.

  • 0

#16 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 01 June 2015 - 04:33 PM

 

Theo tui bác làm như này: Bác lấy Lisp của GIABACH ở trên

1. Tìm dòng: (setq blk_name (vla-get-name (vlax-Ename->Vla-Object ent)))

2. Cho con trỏ ở cuối dòng (Enter) rồi chèn cum này vào:

(cond ((= blk_name "D_D.CT1.1") (setq blk_name "CONG TAC 1 CHIEU 10A"))
        ((= blk_name "D_FAN1") (setq blk_name "QUAT HUT GAN TUONG 300x300"))
        ((= blk_name "D_QT1") (setq blk_name "QUAT TRAN SAI CANH 1,4m + DIMMER"))
        ((= blk_name "TEN BLK") (setq blk_name "TEN DAY DU..."))
  )
là ok. Còn bao nhiêu nữa bác tự soạn tương tự trên.

 

 


Đây:
(cond ((= blk_name "D_D.CT1.1") (setq blk_name "CONG TAC 1 CHIEU 10A"))
((= blk_name "D_FAN1") (setq blk_name "QUAT HUT GAN TUONG 300x300"))
((= blk_name "D_QT1") (setq blk_name "QUAT TRAN SAI CANH 1,4m + DIMMER"))
((= blk_name "TEN BLK") (setq blk_name "TEN DAY DU..."))
)

  • 0

#17 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 01 June 2015 - 04:57 PM

 

Đây:
(cond ((= blk_name "D_D.CT1.1") (setq blk_name "CONG TAC 1 CHIEU 10A"))
((= blk_name "D_FAN1") (setq blk_name "QUAT HUT GAN TUONG 300x300"))
((= blk_name "D_QT1") (setq blk_name "QUAT TRAN SAI CANH 1,4m + DIMMER"))
((= blk_name "TEN BLK") (setq blk_name "TEN DAY DU..."))
)

 

 

Vấn đề ở đây chắc là bạn ấy thích có Tiếng Việt có dấu nữa cơ!


  • 0

#18 vandv

vandv

    Edu level: no10

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

Đã gửi 01 June 2015 - 06:14 PM

Vấn đề ở đây chắc là bạn ấy thích có Tiếng Việt có dấu nữa cơ

 

 đúng là như thế


  • 0

#19 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 01 June 2015 - 06:15 PM

 Cả bản vẽ chỉ có vài bản thống kê, k hiểu vài bước link và dataextraction thì làm khó gì bạn ? Việc đọc dữ liệu từ file excel, thống kê, preview chẳng có gì khó, nhưng ketxu nghĩ k cần thiết. 


  • 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


#20 vandv

vandv

    Edu level: no10

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

Đã gửi 01 June 2015 - 08:14 PM

Thật ra mình là dân hạ tầng san nền, giao thông. Mình cũng ít khi thống kê block. Chỉ là mình  thấy các anh chị em trong công ty bên bộ môn điện thống kê bằng count block khá vất vả. Mình nảy ra ý định làm một file dũ liệu chứa tất cả các block bộ môn điện, sau đó mỗi khi thống kê từ cad thì đối chiếu bên file dữ liệu để đổi tên tiếng việt cho block. Mình cũng đã hướng dẫn kết xuất dữ liệu thông qua dataextraction cho họ nhưng họ nói lệnh này dài dòng quá. Bởi vậy mới đề xuất phương án thống kê từ lip để mọi người dể dùng. Thks. Có lẽ áp dụng nữa tự động (líp) và nữa thủ công thôi (đánh lại tên block tiếng việt). :) 


  • 0