2012年7月12日 星期四

autolisp 建築圖面門窗統計

寫了好幾天的程式終於成功了,只要輸入門窗編號,不論是單行文字、多行文字或屬性圖塊做的標註文字,都可以快速篩選,並且統計數量。

不然建築圖密密麻麻的,從地下室統計到屋凸多算幾次眼睛真的會蝦掉內 ......

這支程式遇到大小寫混用也沒問題

搜尋前 會先變成大寫

(setq serchtxt (strcase (getstring nil "\n 請輸入門窗編號 : ")))

在過濾條件大小寫都會被找到

 (setq sel (ssget "_W"
             spt1
             spt2
             (list (cons 0 "TEXT") (CONS -4 ""))
          )
    )



屬性圖塊可以用這個程式修改成副程式(網路上找到的)



;;;(defun c:sk (/ ent)
;;;
;;;  (if (and (setq ent (car (entsel "\nSelect an Attributed Block: ")))
;;;       (eq "INSERT" (dxf 0 ent))
;;;       ;;(= 1 (dxf 66 ent))
;;;      )
;;;
;;;    (while (not (eq "SEQEND" (dxf 0 (setq ent (entnext ent)))))
;;;      (princ (strcat "\n\nAtt_Tag:"
;;;             (dxf 2 ent)
;;;             "\nAtt_Value: "
;;;             (dxf 1 ent)
;;;         )
;;;      )
;;;    )
;;;  )
;;;
;;;  (princ)
;;;)



這裡的 ent 實際是 entname



最好玩的是我發現有些建築師或事務所的員工不會使用屬性圖塊,而用文字或多行文字放在圖塊中.......... 一點實用性都沒有的使用方式。



所以還得補足這兩種情況這程式才完整 .... 世事難料阿

當然可以用 express tools 裡面有個 burst 可以把圖塊或屬性圖塊炸開變成一般文字。burst  在 15 層的平面圖或更高的樓層,速度會變成非常慢,可以去拉屎、喝咖啡、甚至洗個澡電腦都沒還算完.......



沒有留言:

張貼留言