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

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

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

quan_elec    0
Nếu sử dụng hàm Vxgetatt của anh gia_bach sẽ bị lỗi Font Unicode. Anh gia_bach xem lại code của anh 1 tý.

Đây là code mà Tue_NV viết lại -> quan_elec' chạy thử nhé :

Chạy với file mà file của bạn đã upload lên đây. Chú ý chọn Font chữ hiện hành giống với font chữ trong Khung tên

Đó là Style : KHUNGTEN-TIEUDE (font chữ Aria -Bảng mã Unicode)

Bạn chạy thử với code sau -> Tue_NV đã chỉnh lại :

(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 ;;
;Develop  by Tue_NV. Contact :  @tue_nvcc@yahoo.com
(defun VxGetAtts (Obj / L)
(setq L '())
(while (not (= (cdr(assoc 0 (entget (setq e (entnext e))
		     ))) "SEQEND"))
(setq L (append L (list (list (cdr(assoc 2 (entget e)))
	              (cdr(assoc 1 (entget e)))
		)
	  )
)
)
)
);defun
(SETQ lst '())
(if (> (atof (substr (getvar "ACADVER") 1 4)) 16.0) (progn

(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 66 1)(cons 2 "KT"))))
(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 e)
kyhieu (cadr (assoc "DWNNO" lstAtt))
ten (cdr (assoc "DRAWING" lstAtt)))
(setq lst (cons (cons kyhieu ten) lst)) )
(setq lst (vl-sort lst '(lambda (x y) (< (atoi(substr (car x) 4 (- (strlen (car x)) 3)))
(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-SetTextStyle TblObj x (getvar "TEXTSTYLE")))
	(list acTitleRow acHeaderRow acDataRow) )
(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 Ve")
(vla-setText TblObj 1 2 "Ky hieu")
(foreach pt lst
(vla-setText TblObj row 0 (itoa i))
(vla-setText TblObj row 1 (cadr 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)")
))

Đúng là nó tự dưng "chết" thiệt. :s_big: Chẳng hiểu nguyên nhân. Chỉ có anh gia_bach mới giải thích được cái này :rolleyes:

Cám ơn Tue_NV đã giúp , tuy nhiên lại xuâ1t hiện lỗi mới :

- Lisp đã thể hiện được font Unicode

- Tuy nhiên đối với Tên bản vẽ được đánh xuống dòng thì Lisp chỉ thống kê được phần dòng trên . VD:

+ Tên bản vẽ là : Mặt bằng bố trí chiếu sáng --> tầng trệt

+ Kết quả : Tên bản vẽ : Mặt bằng bố trí chiếu sáng

+ Phần : tầng trệt đã bị cắt mất .

Mong bác Tue_NV lại ra tay giúp đỡ . Thanks bác . Nhờ bác nên tui hiểu được lệnh : getvar "TEXTSTYLE" . Hii , thanks 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
Tue_NV    3.841
Chào Tue_NV

Anh đã phát hiện lỗi này khi Test, nhưng việc xử lý dấu \P (kí tự xuống dòng) trong LINK FIELD anh chưa biết cách. <_>

Nếu không phải LINK FIELD thì có thể giải quyết đuợc. (xử lý chuỗi [string] thì đơn giản hơn.)

......

Cảm ơn anh gia_bach. Em đã test thử và OK. Tuy nhiên lại xuất hiện lỗi về Font chữ Unicode. Khi tick vào nút Insert Field trong hộp thoại thì xuất hiện kí tự \P như anh đã thấy. Còn khi không tick vào Insert Field thì bị lỗi font chữ Unicode như file của bạn quanelec .

Đây là file test Lisp của anh bị lỗi font chữ Unicode :

http://www.cadviet.com/upfiles/2/bv.dwg

Tue_NV nghĩ nó do hàm Vxgetattx mà ra và hôm qua, Tue_NV đã mò mẫm, tìm cách sửa code để sửa lỗi font Unicode, khi thấy OK thì hí hửng post lên, ai ngờ lại bị lỗi là chỉ viết được 1 dòng. Khắc phục lỗi này lại lòi ra lỗi kia. Thiệt đang tìm cách khắc phục mà chưa biết có ra hay không nữa?

 

Rất mong anh giabach và các bạn cho thêm ý kiến về lỗi này. Cảm ơn anh gia_bach và mọi người

  • Vote tăng 2

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
gia_bach    1.442
Cảm ơn anh gia_bach. Em đã test thử và OK. Tuy nhiên lại xuất hiện lỗi về Font chữ Unicode. Khi tick vào nút Insert Field trong hộp thoại thì xuất hiện kí tự \P như anh đã thấy. Còn khi không tick vào Insert Field thì bị lỗi font chữ Unicode như file của bạn quanelec .

Đây là file test Lisp của anh bị lỗi font chữ Unicode :

http://www.cadviet.c...pfiles/2/bv.dwg

Tue_NV nghĩ nó do hàm Vxgetattx mà ra và hôm qua, Tue_NV đã mò mẫm, tìm cách sửa code để sửa lỗi font Unicode, khi thấy OK thì hí hửng post lên, ai ngờ lại bị lỗi là chỉ viết được 1 dòng. Khắc phục lỗi này lại lòi ra lỗi kia. Thiệt đang tìm cách khắc phục mà chưa biết có ra hay không nữa?

 

Rất mong anh giabach và các bạn cho thêm ý kiến về lỗi này. Cảm ơn anh gia_bach và mọi người

Không ngờ VisualLISP hỗ trợ TIẾNG VIỆT kém hơn AutoLISP ?!

Gửi Tuệ hàm lấy danh sách thuộc tính đã Fix lỗi font Tiếng Việt và Attribute có nhiều dòng (phần Field anh chưa biết cách).

(defun GetAtts (e / ent_data l pos tagname tagval val_data)  (while (not (= (cdr(assoc 0 (entget (setq e (entnext e)) ))) "SEQEND"))    (setq ent_data (entget e)  	TagName (cdr (assoc 2 ent_data))   	val_data (assoc 1 ent_data)  	TagVal (cdr val_data)  	ent_data (vl-remove val_data ent_data))    (if (setq val_data (assoc 1 ent_data))      (progn	(setq TagVal (cdr val_data))	(while (setq Pos (vl-string-search "\\P" TagVal))  	(setq TagVal (strcat (substr TagVal 1 pos) " " (substr TagVal (+ 3 Pos))) )) )    )        (setq L (append L (list (cons TagName TagVal))))  ))

 

 

Cập nhật LISP : Trích xuất Block thuộc tính (Khung tên).

Fix :

- lỗi font Tiếng Việt

- Attribute có nhiều dòng

exblk_1.jpg

  • Vote tăng 4

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
quan_elec    0
Không ngờ VisualLISP hỗ trợ TIẾNG VIỆT kém hơn AutoLISP ?!

Gửi Tuệ hàm lấy danh sách thuộc tính đã Fix lỗi font Tiếng Việt và Attribute có nhiều dòng (phần Field anh chưa biết cách).

(defun GetAtts (e / ent_data l pos tagname tagval val_data)
 (while (not (= (cdr(assoc 0 (entget (setq e (entnext e)) ))) "SEQEND"))
   (setq ent_data (entget e)
  TagName (cdr (assoc 2 ent_data)) 
  val_data (assoc 1 ent_data)
  TagVal (cdr val_data)
  ent_data (vl-remove val_data ent_data))
   (if (setq val_data (assoc 1 ent_data))
     (progn
(setq TagVal (cdr val_data))
(while (setq Pos (vl-string-search "\\P" TagVal))
  (setq TagVal (strcat (substr TagVal 1 pos) " " (substr TagVal (+ 3 Pos))) )) )    )    
   (setq L (append L (list (cons TagName TagVal))))  ))

Cập nhật LISP : Trích xuất Block thuộc tính (Khung tên).

Fix :

- lỗi font Tiếng Việt

- Attribute có nhiều dòng

exblk_1.jpg

 

DownLoad Here

Bác Tue_NV vào SG đi , tui với bác rủ bác Gia_bach đi nhâu . không biết làm gì hơn cảm ơn hai bác . :rolleyes: . Cảm ơn hai bác nhiều . Hy vọng được làm phiền 2 bác nhiều hơn . :s_big:

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
Tue_NV    3.841
Không ngờ VisualLISP hỗ trợ TIẾNG VIỆT kém hơn AutoLISP ?!

Gửi Tuệ hàm lấy danh sách thuộc tính đã Fix lỗi font Tiếng Việt và Attribute có nhiều dòng (phần Field anh chưa biết cách).

(defun GetAtts (e / ent_data l pos tagname tagval val_data)
 (while (not (= (cdr(assoc 0 (entget (setq e (entnext e)) ))) "SEQEND"))
   (setq ent_data (entget e)
  TagName (cdr (assoc 2 ent_data)) 
  val_data (assoc 1 ent_data)
  TagVal (cdr val_data)
  ent_data (vl-remove val_data ent_data))
   (if (setq val_data (assoc 1 ent_data))
     (progn
(setq TagVal (cdr val_data))
(while (setq Pos (vl-string-search "\\P" TagVal))
  (setq TagVal (strcat (substr TagVal 1 pos) " " (substr TagVal (+ 3 Pos))) )) )    )    
   (setq L (append L (list (cons TagName TagVal))))  ))

Cập nhật LISP : Trích xuất Block thuộc tính (Khung tên).

......

Rất cảm ơn anh gia bach đã khắc phục lỗi font.

Nhân việc hỏi về cách Link field từ Block Att vào Table, anh cho em hỏi về cách Link field từ 1 thuộc tính TagVal này đến 1 thuộc tính TagVal khác. Tức là thay đổi giá trị của 1 Tagval này thì 1 Tagval kia thay đổi (1 chiều) khi phát lệnh REGEN.

Rất mong sự giúp đỡ của anh. Cảm ơn anh rất nhiều.

 

@'quan_elec' : Cảm ơn bác với lời mời. Nếu Tue_NV ở Sài gòn thì chắc chắn rủ bác với anh gia_bach đi nhậu liền à :rolleyes:

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
quan_elec    0
Sao bây giờ nó lại bị lỗi "thứ tự" nhỉ, cái cần ở đầu tiên thì lại chạy xuống dưới!! :rolleyes: :s_big: :s_big:

Cái nào bác cần đặt trước thì bác add nó trước , cái nào ngay sau thì add sau . VD : STT -->TBV -->Ky hieu ban ve , thì bác sẽ add theo thứ tự : TBV trước rồi đến KHBV . Cám ơn diễn đàn .

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
gia_bach    1.442
Sao bây giờ nó lại bị lỗi "thứ tự" nhỉ, cái cần ở đầu tiên thì lại chạy xuống dưới!! :rolleyes: :s_big: :s_big:

Bạn dùng nút Up - Down để sắp xếp theo thứ tư mong muốn.

 

...........

cách Link field từ 1 thuộc tính TagVal này đến 1 thuộc tính TagVal khác.

Tức là thay đổi giá trị của 1 Tagval này thì 1 Tagval kia thay đổi (1 chiều) khi phát lệnh REGEN.

........................

Gửi Tue_NV Lisp tạo Link field thuộc tính đầu tiên của Block Att

(defun C:Tag_link(/ att att1 blk_name ent field i obj obj1 source ss ss1)
;|  By : Gia Bach, gia_bach @  www.CadViet.com             |;
 (princ "\nChon Block thuoc tinh nguon :" )
 (if (setq ss1 (ssget "+.:S:N" (list (cons 0 "INSERT")(cons 66 1))))
   (progn
     (setq source (ssname ss1 0)
    blk_name (cdr (assoc 2 (entget source))))
     (princ "\nChon Block thuoc tinh can Link :" )
     (if (setq ss (ssget (list (cons 0 "INSERT")(cons 2 blk_name)(cons 66 1))))
(progn
  (setq i -1
	obj1 (vlax-Ename->Vla-Object source)
	Att1 (car (append (vlax-invoke Obj1 'GetAttributes)
			  (vlax-invoke Obj1 'GetConstantAttributes)))
	field (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-Objectid Att1)) ">%).TextString>%"))
  (while (setq ent (ssname ss (setq i (1+ i))))
    (setq obj (vlax-Ename->Vla-Object ent)
	  Att (car (append (vlax-invoke Obj 'GetAttributes)
			   (vlax-invoke Obj 'GetConstantAttributes))) )
    (vla-put-TextString Att field) ) ))
     (vl-cmdf "regen" ) ))
 (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
quan_elec    0
Bạn dùng nút Up - Down để sắp xếp theo thứ tư mong muốn.

Gửi Tue_NV Lisp tạo Link field thuộc tính đầu tiên của Block Att

(defun C:Tag_link(/ att att1 blk_name ent field i obj obj1 source ss ss1)
;|  By : Gia Bach, gia_bach @  www.CadViet.com             |;
 (princ "\nChon Block thuoc tinh nguon :" )
 (if (setq ss1 (ssget "+.:S:N" (list (cons 0 "INSERT")(cons 66 1))))
   (progn
     (setq source (ssname ss1 0)
    blk_name (cdr (assoc 2 (entget source))))
     (princ "\nChon Block thuoc tinh can Link :" )
     (if (setq ss (ssget (list (cons 0 "INSERT")(cons 2 blk_name)(cons 66 1))))
(progn
  (setq i -1
	obj1 (vlax-Ename->Vla-Object source)
	Att1 (car (append (vlax-invoke Obj1 'GetAttributes)
			  (vlax-invoke Obj1 'GetConstantAttributes)))
	field (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-Objectid Att1)) ">%).TextString>%"))
  (while (setq ent (ssname ss (setq i (1+ i))))
    (setq obj (vlax-Ename->Vla-Object ent)
	  Att (car (append (vlax-invoke Obj 'GetAttributes)
			   (vlax-invoke Obj 'GetConstantAttributes))) )
    (vla-put-TextString Att field) ) ))
     (vl-cmdf "regen" ) ))
 (princ))

Chào bác Gia_bach và Tue_NV , lại làm phiền 2 bác nữa rồi . Lisp truy xuất thuộc tính Block của bác Gia_bach có lỗi về sắp xếp thứ tự khi truy xuất . 2 bác xem qua bản vẽ theo link sau nhé http://www.mediafire.com/?wnq22qmc0nm .Cám ơn 2 bác trước , hii :rolleyes:

  • 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
Chào bác Gia_bach và Tue_NV , lại làm phiền 2 bác nữa rồi . Lisp truy xuất thuộc tính Block của bác Gia_bach có lỗi về sắp xếp thứ tự khi truy xuất . 2 bác xem qua bản vẽ theo link sau nhé http://www.mediafire.com/?wnq22qmc0nm .Cám ơn 2 bác trước , hii :s_big:

đó đó, ý em là vậy đó! thực ra trước kia bác Gia_Bach đã khắc phục lỗi này rồi ( đã đề cập ở những bài viết bên trên) nhưng không hiểu sao bây giờ lại bị

lại!!!!!!!

lish của bác chạy ngon rùi! Nhưng bác có thể thêm lựa chọn như:

-chọn text style

- fit text ( cụ thể: text chỉ ở 1 hàng, trong một dòng), không bị xuống dòng tạo ra các hàng có chiều cao khác nhau trông không đẹp lắm!

tham lam quá! các bác lượng thứ!

@ trinhvqh: em chạy thử thì ok, sort từ nhỏ đến lớn!

ffff.jpg

Bác xem lại cho, xim cảm tạ.......... :s_big: :rolleyes:

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
gia_bach    1.442
... Lisp truy xuất thuộc tính Block có lỗi về sắp xếp thứ tự ...

To duonghung1210 quan_elec : Cám ơn góp ý của hai bạn.

 

Cập nhật LISP : Trích xuất Block thuộc tính (Khung tên).

Fix :

- lỗi sắp xếp thứ tự.

- FIX chiều rộng từng cột.

blktbl.jpg

Chỉnh sửa theo gia_bach
  • Vote tăng 6

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
quan_elec    0
To duonghung1210 quan_elec : Cám ơn góp ý của hai bạn.

 

Cập nhật LISP : Trích xuất Block thuộc tính (Khung tên).

Fix :

- lỗi sắp xếp thứ tự.

- FIX chiều rộng từng cột.

blktbl.jpg

 

Link download

Chào bác Gia_bach , tui mới thử Lisp truy xuất thuộc tính của bác ,bác làm việc nhanh gọn thiệt , hii . Nhưng hình như có chút nhẫm lẫn về ý tưởng thực hiện bác ah . Về trình tự sắp xếp nó sẽ như thế này nè bác Gia_bach:

Bản vẽ chiếu sáng : E-01-01 ; E-01-02…….E-01-09

Bản vẽ thông tin : IT-01-01 ; IT-01-02…….IT-01-09

Bản vẽ báo cháy : FA-01-01 ; FA-01-02…….FA-01-09

Lisp trước đây của bác đã thể hiện được yêu cầu trên , tuy nhiên chỉ có chút xáo trộn trong việc sắp xếp thứ tự ( như trên bản vẽ theo link đã gửi )

Nhờ bác coi lại giúp nhé :rolleyes: 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
To duonghung1210 quan_elec : Cám ơn góp ý của hai bạn.

 

Cập nhật LISP : Trích xuất Block thuộc tính (Khung tên).

Fix :

- lỗi sắp xếp thứ tự.

- FIX chiều rộng từng cột.

­

Cảm ơn bác, với em thì ngon rồi!!

a, bác tắt cái autocad menssage đi được không, khi mình contens... lish vào thì lúc nào khởi động máy cũng lên cái menssage đó, cứ thấy chậm chậm thế nào ấy!!! :rolleyes: :s_big: :s_big:

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
trinhvqh    222
Yêu cầu của bạn có vẻ khó thực hiện. :s_big:

Vì sắp xếp theo thứ tự của bạn ( E -> I -> F) sẽ không tổng quát đối với mọi nguời.

Có lẽ bạn nên đổi cách đặt tên tag SBV :rolleyes:

 

Không thể vì Sort theo thứ tự abc mà đổi tên ký hiệu bộ môn được.

Thực tế các bộ môn không sort theo thứ tự ABC.

 

Theo ý kiến của tôi việc Sort phải theo thứ bậc:

01. Sắp xếp bộ môn: theo nguyên tắc áp đặt ví dụ KT.; KC.; CĐ; CTN;..

02. Sắp xếp thứ tự bản vẽ: Theo 123

03. Sắp xếp thứ tự bản vẽ chỉnh sửa: Ví dụ E-01a; E-01b (theo thứ tự abc)

 

Xem ra, việc này quá tầm với Autolisp

Hoặc là nguời sử dụng sẽ tiếp tục xà quần, hoặc là các cao thủ lisp sẽ cân não, hoặc là tôi tiếp tục bị "đả kích" :s_big:

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
quan_elec    0
LISP sắp xếp thứ tự theo qui tắc : mẫu tự ABC.

do đó bản vẽ của bạn sắp xếp thứ tự theo Tag = SBV sẽ là : E-.... -> FA-.... -> IT-.....

cụ thể là :

1. Bản vẽ chiếu sáng : E-01-01 ; E-01-02…….E-01-09

2. Bản vẽ báo cháy : FA-01-01 ; FA-01-02…….FA-01-09

3. Bản vẽ thông tin : IT-01-01 ; IT-01-02…….IT-01-09

 

Yêu cầu của bạn có vẻ khó thực hiện. :s_big:

Vì sắp xếp theo thứ tự của bạn ( E -> I -> F) sẽ không tổng quát đối với mọi nguời.

Có lẽ bạn nên đổi cách đặt tên tag SBV :rolleyes:

 

To : duonghung1210

Cập nhật theo yêu cầu của bạn. http://www.cadviet.com/upfiles/2/exblk3.zip

Hix, Ý em không phải vậy bác gia_bach ơi . Nhờ bac load giúp bản vẽ theo link này http://www.mediafire.com/?qwukjzjzzyj

Trong đó em đã nói rõ hơn về trường hợp của em .

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
trinhvqh    222
Tên ký hiệu bộ môn sẽ đặt theo T/Chuẩn nào ? TCVN, JIT, BS, ...

 

Bạn sẽ đề xuất T/Chuẩn ... CadViet ?

 

Có vẻ như lâu ngày không thấy ai "đả kích" , trinhvqh cũng hơi "nhơ sắc ..." :rolleyes:

 

Lâu lâu phải thêm tí "gia vị" cho nó đậm đà chứ Bác!

Không thì chỉ diễn đàn chỉ toàn là "mẹ hát con khen hay"

 

Bác hỏi "dựa theo tiêu chuẩn nào?" thì em pó tay

Cái đó phải chờ Bộ Xây dựng (việc này khó khả thi)

Cho nên mới gọi là "áp đặt"

 

Có một thực tế 100% Hồ sơ bản vẽ gồm nhiều bộ môn và 100% các Bộ môn đều không sắp xếp theo thứ tự abc

(Không biết việc này đủ thuyết phục gia_bach khỏi vẹn vẹo mình nữa k?)

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
quan_elec    0
Khó hiểu quá !

Đây là kết quả chọn TagSort theo tag SBV

blktbl_1.jpg

 

chọn Tag TagSort theo tag SBV

blksort.jpg

Tên ký hiệu bộ môn sẽ đặt theo T/Chuẩn nào ? TCVN, JIT, BS, ...

 

Bạn sẽ đề xuất T/Chuẩn ... CadViet ?

 

Có vẻ như lâu ngày không thấy ai "đả kích" , trinhvqh cũng hơi "nhơ sắc ..." :rolleyes:

Sorry bác gia_bach , lam phiền bác 1 chuyện quá đơn giản , hii , em quên để ý cách sử dụng . Mong bác thứ lỗi :s_big: . Cám ơn bác nhiều , đa tạ , đa tạ .. :s_big:

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
nemo2004    100

Ui vấn đề nay hay quá em đang bị cái vụ tạo drawing list trên công ty.Nhưng bài nhiều quá có bác nào tổng hợp lại không ( trong này bom đạn dặt tùm lum em sợ đụng vào lại nổ chết người :rolleyes:)

 

@TUE_VN : lâu quá không gặp chú Tuệ rồi, dạo này chú và gia đình vẫn khỏe chứ ah !Chú đã chuyển vào nam chưa hay vẫn ở chỗ cũ vậy?

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
funnyzui    1

Xin a gia_bach vui lòng giải thích giùm e. E đang xài CAD 2007. Mặc dù đã download về thử nghiệm 3,4 cái trích xuất block thuộc tính ExBlk.vlx, nhưng ko hiểu có sai thao tác nào ko mà sau ghi tạo bảng xong. Bảng trống huơ trống hoắc, các cell ko có contents nào cả. Và lạ là khi click đúp vô thì ô cell tự nhiên biến mất.

 

Ko biết có ai bị như vầy ko??? :D

cadviet.jpg

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
gia_bach    1.442
Xin a gia_bach vui lòng giải thích giùm e. E đang xài CAD 2007. Mặc dù đã download về thử nghiệm 3,4 cái trích xuất block thuộc tính ExBlk.vlx, nhưng ko hiểu có sai thao tác nào ko mà sau ghi tạo bảng xong. Bảng trống huơ trống hoắc, các cell ko có contents nào cả. Và lạ là khi click đúp vô thì ô cell tự nhiên biến mất.

 

Ko biết có ai bị như vầy ko??? :D

cadviet.jpg

Theo phản hồi từ 1 số thành viên, với Cad 2007 kết quả không đuợc như ý.

Rất tiếc là tui không có Cad 2007 nên không thể kiểm tra đuợc.

Với Cad 2008 và 2010 Lisp Trích xuất Block thuộc tính chạy bình thuờng.

  • 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
Tue_NV    3.841
LISP sắp xếp thứ tự theo qui tắc : mẫu tự ABC.

do đó bản vẽ của bạn sắp xếp thứ tự theo Tag = SBV sẽ là : E-.... -> FA-.... -> IT-.....

cụ thể là :

1. Bản vẽ chiếu sáng : E-01-01 ; E-01-02…….E-01-09

2. Bản vẽ báo cháy : FA-01-01 ; FA-01-02…….FA-01-09

3. Bản vẽ thông tin : IT-01-01 ; IT-01-02…….IT-01-09

 

Yêu cầu của bạn có vẻ khó thực hiện. :D

Vì sắp xếp theo thứ tự của bạn ( E -> I -> F) sẽ không tổng quát đối với mọi nguời.

Có lẽ bạn nên đổi cách đặt tên tag SBV :D

 

To : duonghung1210

Cập nhật theo yêu cầu của bạn. http://www.cadviet.com/upfiles/2/exblk3.zip

Chào anh gia_bach

Em bị lỗi sắp xếp với hàm vl-sort như bài viết số 19 của em trong topic này :

http://www.cadviet.com/forum/index.php?showtopic=16609

Em chưa biết cách giải quyết sao cho trọn vẹn vấn đề này.

Mong anh gia_bach hướng dẫn thêm về thuật toán sắp xếp này. Nếu có thể, anh có thể minh họa cho em một đoạn code nhỏ để em về ngâm cứu thêm ạ. Em đang "bí" đoạn sắp xếp này

Cảm ơn anh rất nhiều :D

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
thiep    263
Xin a gia_bach vui lòng giải thích giùm e. E đang xài CAD 2007. Mặc dù đã download về thử nghiệm 3,4 cái trích xuất block thuộc tính ExBlk.vlx, nhưng ko hiểu có sai thao tác nào ko mà sau ghi tạo bảng xong. Bảng trống huơ trống hoắc, các cell ko có contents nào cả. Và lạ là khi click đúp vô thì ô cell tự nhiên biến mất.

 

Ko biết có ai bị như vầy ko??? :D

cadviet.jpg

 

Theo phản hồi từ 1 số thành viên, với Cad 2007 kết quả không đuợc như ý.

Rất tiếc là tui không có Cad 2007 nên không thể kiểm tra đuợc.

Với Cad 2008 và 2010 Lisp Trích xuất Block thuộc tính chạy bình thuờng.

Chào funnyzui và bác Giabach.

Tuy không đọc được mã Lisp trích xuất Block thuộc tính của giabach, nhưng Thiep đoán rằng giabach đã dùng các hàm VL xử lý Table chỉ từ cad2008 mới có. Nếu đúng vậy thì giabach nên dùng các hàm (vlax-method-applicable-p objmethod), (vlax-property-available-p obj prop [check-modify]) để kiểm tra chúng. Ví dụ:

(if (vlax-property-available-p

TblObj

'RepeatTopLabels

)

(vla-put-RepeatTopLabels TblObj :vlax-true)

)

hoặc:

(if

(vlax-property-available-p TblObj 'BreakSpacing)

(vla-put-BreakSpacing TblObj (* 3 tsi))

); tsi=textsize

Chúc bác giabach thành công!

  • 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
ketxu    2.649
Lâu lâu phải thêm tí "gia vị" cho nó đậm đà chứ Bác!

Không thì chỉ diễn đàn chỉ toàn là "mẹ hát con khen hay"

 

Bác hỏi "dựa theo tiêu chuẩn nào?" thì em pó tay

Cái đó phải chờ Bộ Xây dựng (việc này khó khả thi)

Cho nên mới gọi là "áp đặt"

 

Có một thực tế 100% Hồ sơ bản vẽ gồm nhiều bộ môn và 100% các Bộ môn đều không sắp xếp theo thứ tự abc

(Không biết việc này đủ thuyết phục gia_bach khỏi vẹn vẹo mình nữa k?)

 

Đọc hết 2 phần Viết Lisp theo yêu cầu,không khỏi dị ứng với thái độ của bác này...Góp ý toàn kiểu châm chọc,khích bác,so sánh giữa ACA với LISP...Thường thì nên giữ thái độ đó nếu mình làm tốt hơn người ta khi ở cùng 1 địa vị

  • 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
Tue_NV    3.841
Đọc hết 2 phần Viết Lisp theo yêu cầu,không khỏi dị ứng với thái độ của bác này...Góp ý toàn kiểu châm chọc,khích bác,so sánh giữa ACA với LISP...Thường thì nên giữ thái độ đó nếu mình làm tốt hơn người ta khi ở cùng 1 địa vị

Tue_NV rất tâm đắc câu nói này của bác trinhvqh và thật sự đúng là như vậy

Thế đấy, Cuộc đời, nếu không “tranh cãi” thì không thể tiến bộ được :D

ACA & SU (tt)

--------

Tâm lý chung của người dùng là luôn luôn so sánh các Phần mềm với nhau

Đã không biết bao nhiêu cuộc tranh cãi về Autocad, SketchUp, Revit, 3Dmax,.. để xem ai là cao thủ trong giới đồ họa.

Phải nên biết rằng mọi so sánh đều khập khiễng

Vì mục đích và công dụng của mỗi phần mềm là khác nhau

- Nếu lấy tiêu chí Render ảnh chất lượng cao để so sánh thì làm sao Revit có thể bằng 3Dmax?

- Còn nếu lấy việc quản lý bản vẽ thì làm sao Max lại chuyên nghiệp bằng Revit được?

- Ngay cả ACA và Revit tương đồng nhau về nhiều mặt. Autodesk cũng đã xác nhận ACA là thế hệ thứ 2, Revit là thế hệ thứ 3.

Nhưng để so sánh cũng đều là khập khiễng.

 

Trước đây, tôi cứ nghĩ rằng ACA là phù hợp nhất với công việc của mình rồi.

ACA là nhất rồi: Tiện dụng hơn CAD, chuyên nghiệp hơn CAD,… và quan trọng là Ít đụng hàng.

Thế rồi gặp một người bạn lúc đó đang sử dụng SketchUp.

 

Chắc các bạn cũng đoán được thế nào rồi. 02 con người “ham hố”, “hiếu thắng” ngồi lại bàn chuyện chuyên môn thì tránh sao khỏi những tranh cãi nảy lửa.

Mỗi người đều tìm cách đưa ra những “tuyệt chiêu” để quảng cáo cho “sản phầm” mình đang sử dụng.

Tranh luận sôi nổi, cãi lộn um sùm, kết thúc không ai chịu ai, ai về nhà nấy,…

 

Hôm sau gặp nhau cả hai đều thừa nhận, mỗi phần mềm đều có những “lấn cấn”.

Để “thuyết phục”. Người bạn kia dạy tôi SU; Còn tôi sẽ truyền lại ACA.

 

Sự kết hợp này giúp cả hai nâng cao tay nghề, bước sang một giải đoạn mới.

Từ đó Cùng bắt tay tìm hiểu về Revit (lúc đó được thầy Thiện ca ngợi tận mây xanh); Chief Architect,..

 

Nếu không có tranh luận ấy. Có lẽ đến bây giờ Tôi vẫn đang khổ sở trong khâu vẽ trang trí hoàn thiện.

Còn bạn tôi vẫn loay hoay mãi với việc quản lý và thống kê.

 

Thế đấy, Cuộc đời, nếu không “tranh cãi” thì không thể tiến bộ được

--------------------------

--------------------------

Chào funnyzui và bác Giabach.

Tuy không đọc được mã Lisp trích xuất Block thuộc tính của giabach, nhưng Thiep đoán rằng giabach đã dùng các hàm VL xử lý Table chỉ từ cad2008 mới có. Nếu đúng vậy thì giabach nên dùng các hàm (vlax-method-applicable-p objmethod), (vlax-property-available-p obj prop [check-modify]) để kiểm tra chúng.

---------

Chào bác Thiep

Các hàm các hàm VL xử lý Table thì đã có từ CAD2006 rồi bác ạ. Có 1 điều mà Tue_NV không thể hiểu nổi là cái Table lại bị "trống rỗng" như tình trạng của funnizui.

Bác có thể giải thích rõ hơn 1 chút nữa về cách làm của bác thể hiện trong Code trên được không? Cảm ơn bác

 

@Anh gia_bach : Bài giải về sự sắp xếp chuỗi trong topic này em "bí rị" rồi anh ạ. :D

Rất mong sự hướng dẫn của anh và mọi người.

Tue_NV xin cảm ơn.

Chúc anh gia_bach và bác Thiep dồi dào sức khỏe và thành công :D

Chào anh gia_bach

Em bị lỗi sắp xếp với hàm vl-sort như bài viết số 19 của em trong topic này :

http://www.cadviet.com/forum/index.php?showtopic=16609

Em chưa biết cách giải quyết sao cho trọn vẹn vấn đề này.

Mong anh gia_bach hướng dẫn thêm về thuật toán sắp xếp này. Nếu có thể, anh có thể minh họa cho em một đoạn code nhỏ để em về ngâm cứu thêm ạ. Em đang "bí" đoạn sắp xếp này

Cảm ơn anh rất nhiều :D

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


×