2018年4月13日 星期五

由圖塊或外部參考 快速產生 Xclip


BTC  改版了,並且在實用性上改進了,自動產生斷折線








值得一提的是現在Xclip 一選就可以調整大小,你不必再去切換顯示或關閉切割邊界,對整個工作校能來說是非常棒的一個改進。

2018.04.17 更新 :
不論使用者怎麼亂操作作都不會當,不限制左上右下、
右下左上、右上左下,左下右上等選取方式。
間隔比例由 Dimscale 控制,Xclip間隔一定是 DimScale的10倍,
使用者不必選取切割次數,隨時按下 ESC 結束程式,便恢復系統設定。





Divside 以期望的值作等分

以期望的值作等分,配合新版AutoCAD ,列出鄰近分割值及等分長度



2018年4月4日 星期三

Refedit 參考編輯儲存或關閉時那詭異的緩慢,怎麼改善?


參考編輯儲存或關閉時那詭異的緩慢  ~"~!
怎麼改善?

TreeMax 系統變數調小,這是說明文件上找得到的方式,其實 TreeMax 系統變數調小對 Layout 切換也有幫助。
TreeMax 預設值是 10000000  少個零再試試。

另一個是書本沒教,我偶然發現的方法。



事實上在錄製影片之前我按下儲存外部參考,他讓我等了2分多鐘將近3分鐘,就是因為這種儲存時間的差異讓我發現這個方式。

在原本的巨集前後加上視窗縮放指令即可。

 '_zoom _e  原本的巨集 zoom p

'_zoom _e $M=$(if,$(eq,$(getvar,refeditname),""),^C^C^P(ai_refedit_alert)^P,^C^C_refclose _sav) zoom p

'_zoom _e $M=$(if,$(eq,$(getvar,refeditname),""),^C^C^P(ai_refedit_alert)^P,^C^C_refclose _disc) zoom p


2018年4月3日 星期二

根據目前的標註形式 更新所有的標註形式 除了整體比例

緣起

如果你是傳統的AutoCAD 使用者,並且是用舊的標註比例控制的方式,你總會遇到一個痛處,就是在眾多標註形式中,萬一你想變更某一小設定,你要變更每一個型式的設定。


萬一你在一個圖檔中用了10 種標註形式那真的是噩夢.........

為了這個問題我收集了很多相關資訊打算自己做一個對話視窗來一次改變設定等等,但是過程中我發現,只需要簡單的指令就能做到
例如 ( command  "-dimstyle" "save" "y") 

本來是千行程式碼的大作,變成不到 50 行的小品。 

先為者個指令建立一個按鈕,命令列鍵入 CUI
這部分很簡單,照圖面做一個按鈕 (1)
(3)按鈕圖形部分選一個現有的圖形自己改一下,非常簡單。
(2) Macro 部分 ^C^C_UADFC  就是他的指令

按鈕做好用滑鼠拉到工具列就可以用了


接著使用方式及載入程式,請觀賞影片


載入的時候記得將檔案格式改成 *.VLX 載入 UADFC.VLX 就能用了
影片中 content 再加入一次就是每次開啟AutoCAD 他就會自動載入。




2018年3月25日 星期日

Autolisp 讓文字大小,Mleader比例自動跟著標註設定

複製下程式碼,存成  Mtext.lsp 並載入

(defun c:MaxText (/ dimscal )
  ;;------------- 支援 annotative ---------------------
  (if (= 1 (getvar "DIMANNO"))
    (progn
      (setq dimscal (/ 1 (getvar "cannoscalevalue")))
      (setvar "TextSize" (* dimscal 3))
    )
    (progn
      (setq dimscal (getvar "dimscale"))
      (setvar "TextSize" (* dimscal 3))
    )
  ) ;_if
  ;;------------- 支援 annotative ---------------------
  (setvar "clayer" "text" ;_切換圖層
  (initdia;;強制顯示下個 command 的 dialog box 
  (command "mtext")
  (princ)
) ;_defun


記得在contents 再加入一次,以後AutoCAD 啟動就會自動載入




接著只要在 cui 找到 Multiline Text  將 Macro 改成 ^C^C_MaxText 就可以了



這個程式的好處在於不論你是用傳統的方式或 Annotative  的標註,他都會自動調整文字大小到目前標註設定的大小。

例如 CNS 1:1 時字高為 3~3.5mm
程式會根據標助比例調整字高。

你完全不需要再去調整字型設定,但是要注意的是 TextStyle 的字高一定要設定成 0 。


Mleader 也可以自動設定,完全不必再去調整其大小

上述程式簡單改一改就可以 
(setvar "MLEADERSCALE" dimscal)


(defun c:MaxMleader (/ dimscal )
  ;;------------- 支援 annotative ---------------------
  (if (= 1 (getvar "DIMANNO"))
    (progn
      (setq dimscal (1 (getvar "cannoscalevalue")))
    )
    (progn
      (setq dimscal (getvar "dimscale"))
      (setvar "MLEADERSCALE" dimscal)
    )
  ) ;_if
  ;;------------- 支援 annotative ---------------------
  (setvar "clayer" "dim" ;_切換圖層
  (initdia)  ;;強制顯示下個 command 的 dialog box 
  (command "mleader")
  (princ)
;_defun


如此一來不論是傳統的一個標註型式一個比例的用法,或是Annotative 的用法,都不必再調整字高,或Mleader 形式,只要切換標註比例 (DimScale ),或是Annotative 比例,他就能自動切換。


2018年3月15日 星期四

2D 斷面物理性質 及 如何撰寫 Autolisp

這個程式想寫很久了,最近終於完成了,實際花費時間大概是4天。
含注解大約 1130 行 ,我發現專注力還是蠻強的,只是體力不行了 XD



除了AI 程式撰寫,對一般程式設計來說都是一樣的,可以用一句話概括 :

程式設計就是  輸入 及  輸出 。

就以此程式為例


你要輸出什麼?  你要輸入什麼?

1.面積 ,你得安排一個程式
(defun ShapeArea (obj / )
   ;;內容先不管
)

2.周長
(defun ShapePerimeter (obj /  ))

3.邊界座標
(defun ShapeBoundingBox (Obj /  ))

4.形心座標
(defun ShapCenter (obj /  ))
.......

對於該程式傳入的是物件 所以給予參數 obj 的名稱
對於每個輸出應該是什麼型別,你也應當標示 :

(defun ShapeArea (obj / )) ;_string
(defun ShapePerimeter (obj /  )) ;_string
(defun ShapeBoundingBox (Obj /  )) ;_pointList
(defun ShapCenter (obj /  )) ;_point
.......

接著對每個上述副程式做測試

(defun c:test ( / Obj CenterPt  )
  ;;*********** centroid 形心副程式 *************
  (defun ShapCenter (obj / o c)
    ;;程式碼 
    bula bula bula ........
  ) ;_傳回 point

  (setq Obj (ssget))
  (setq CenterPt (ShapCenter Obj))
  (command "point" CenterPt "")
)

這些工作都不會白做,這個測試用的程式也表達了副程式呼叫的方式。你可以註解的形式,為該副程式加上呼叫方式的註解。

(defun ShapCenter (obj /  )) ;_point
;;呼叫方式 (setq CenterPt (ShapCenter Obj))
;; 參數為Region 物件。


甚至可以用Xmind 或 Visio 等軟體會制流程,順著這個架構,安排好 
輸入 及輸出讓方向明確,架構清楚,效率也會好很多。

還有就是不要懶惰不寫注解,有一天你進步了,你想大改某支程式,沒註解你就要全部重新理解,浪費時間。

變數的使用,則要一眼能看出他的作用與型別例如:

AreaStr
LeftTopPt
AreaReal

用途與型別一眼就知道。

另外就是lisp 的一個特色

(defun c:test ( 傳入參數  傳入參數 / 本地化變數 本地化變數  ......  )

你可以在一個 程序 Procedure 或 函數 Function 中任意宣告一個變數,但是他是 Public,不只同檔案可以存取,其他檔案也可以,那真是噩夢一場,
所以你一定要將每個變數本地化

對於公有變數你一定要加上 Public_變數名稱_型別 ,否則在除錯的過程這些都是噩夢,當然這種公有變數的使用並不多。

程序 Procedure 或 函數 Function  也是一樣,如果只有這個程式用到
儘量將其包含在該程式中,以避免同名稱的問題例如:

(defun c:test ( / Obj CenterPt  )
  ;;*********** centroid 形心副程式 *************
  (defun ShapCenter (obj / o c)
    ;;程式碼 
    bula bula bula ........
  ) ;_傳回 point

  (setq Obj (ssget))
  (setq CenterPt (ShapCenter Obj))
  (command "point" CenterPt "")
)


Lsip 其實超級簡單易用

所有的指令函式甚至結構式都可以概括成一種形式


(指令 名稱  參數)
(程序 名稱  參數 參數 參數)
(算子 名稱  參數)

例如 :

(defun ShapeArea (obj / )) ;_string

這裡 defun 是說你要定義一個程序或函式
ShapeArea  是其名稱
obj 是你要傳入的參數
/ 之後的為該函式的私有變數


(+ 1  1 )
加為其指令
後面是兩個參數或更多個參數













像這類測試你可以直接在 console 測試

每個括號前後快速的點兩下滑鼠,他都會告訴你對稱的範圍。













(defun c:test ( / )
  ;;*********** centroid 形心副程式 *************  
  (defun ShapCenter (obj / o c)
    ;;程式碼 
    bula bula bula ........
  ) ;_傳回 point

  ;;-------------- 主程式 ------------------  
  (setq Obj (ssget))  ;_ Obj 變數 一定要是Region
  (setq CenterPt (ShapCenter Obj)) ;_ 呼叫 ShapCenter 函數 
  (command "point" CenterPt "") ;_ 輸出繪製點 
) ;_ defun


想想是不是一句話就能概括?

程式設計就是  輸入 及  輸出 。

我就是這樣開始寫的,這句話是一位朋友當年跟我講的,當時我是寫Foxpro  和 Delphi  (Pascal)  ,其他程式設計的細節呢?

按 F1  鍵

完整的手冊就跳出來



在比較舊的版本都是CHM 檔案,這是我最愛的一種,因為可以用 CyberArticle  轉出來。

很可惜現在都改成Html 格式,個人覺得很不方便。



2018年3月14日 星期三

AutoCAD 2018 ToolBar 在儲存 Wrokspace 位置之後還是會跑掉


儲存好了位置至還是跑掉 ,編輯Cui 後位置也跑掉

來回切換 workspace  讓人感到困擾


解決辦法,
1.建立一個快速回復的按鈕                             
2.在 Macro 的地方輸入 ^C^C_workspace;;;    
3.隨便選一個你要的 icon ,編輯 icon 圖形。



下次 ToolBar 位置跑掉,你只需要點一下就搞定,回到你儲存的 Workspace 時的樣子。



2017年12月9日 星期六

喜立德螺栓與預埋模型庫及其結構計算軟體

喜立德各種螺栓與預埋建模型庫,免費的,安裝後選TW 就有中文介面。
支援各種 3D 2D 繪圖軟體格式 下載頁面 : https://www.hilti.com/content/hilti/W1/US/en/engineering/software/bim.html 簡介影片

相關螺栓與預埋結構計算軟體
他還會自動幫你找到最佳方案,蠻棒的軟體
PROFIS ANCHOR 簡介影片

2017年9月27日 星期三

地藏菩薩本願經


地藏菩薩本願經
就兩卷,對於睡眠很有幫助 😅
把它濃縮一下

卷一
1.開場很 (寶來屋)
2.身世婆羅門女
3.業就是行為造作
4.生死業緣,果報自受
5.地獄名號 (寶來屋)
6.如來讚歎 (重點在鼓勵廣傳)
卷二
7.(利益存亡品)越講越誇張,跟其他宗教的講法幾乎無異!! 
8.(閻羅王眾讚歎品) 

角色中唯一有大智慧的"閻羅天子"

從這邊開始,往佛教的方向轉回來

閻羅天子問了一個針對 (利益存亡品) 內容的問題。

白話的說 : 阿佛陀你說地藏王菩薩這麼了不起,為什麼這麼多眾生剛從地獄出來,又幹了一堆壞事,死了又下地獄?
佛陀的譬喻怎麼回答呢?
佛告閻羅天子:「南閻浮提眾生,...
「譬如有人,迷失本家,誤入險道。其險道中,多諸夜叉,及虎狼師子、蚖蛇蝮蠍。如是迷人,在險道中,須臾之間,即遭諸毒。
有一知識,多解大術,善禁是毒,乃及夜叉諸惡毒等。忽逢迷人,欲進險道,而語之言:『咄哉!男子!為何事故,而入此路?有何異術,能制諸毒?』是迷路人,忽聞是語,方知險道,即便退步,求出此路。
是善知識,提携接手,引出險道,免諸惡毒,至于好道,令得安樂,而語之言:『咄哉!迷人!自今已後,勿履是道。此路入者,卒難得出,復損性命。』是迷路人,亦生感重。臨別之時,知識又言:『若見親知及諸路人,若男若女,言於此路多諸毒惡,喪失性命。無令是眾,自取其死。』

白話的說 : 就是說佛教所謂的 "度眾生"是善知識告訴你,端正行為靠自己。
回憶一下 "生死業緣,果報自受 "
佛陀這譬喻不是打臉了 " 利益存亡品 "??
大乘佛教是用很婉轉的方式來駁其他宗教的觀念及宗教行為。

包括念經超渡、念咒、火供,這些其實都是外道的行為觀念。
另外,分身 ; 這不是在標榜神變,這是他希望每個人都去做勸人為善這事,不是真的有那麼多個地藏王菩薩。
在中阿含17經,佛陀做了一個譬喻 :
「善哉!伽彌尼!所以者何?.... (略 )
白話的說就是有人殺盜淫妄邪見等,眾人為這惡人祈禱,他會生到天上嗎?那是不可能的!
又例如有人把很重的石頭丟進水裡沉到池中,眾人祈禱時頭浮起來,石頭會浮起來嗎? 那是不可能的!
這類經典,如果你有阿含經的基礎,很快就能分析出來。
如果你注意在那些神話故事,真的會讀十年而不解其義,行為上,思維上還是跟外道一樣。






2017年9月15日 星期五

印度佛教之衰亡

印度之佛教 印順法師著

第十七章 密教之興與佛教之滅
第四節 印度佛教之衰亡
  佛元八世紀以來,佛教外以印度教之復興,於具有反吠陀傳統之佛教,予以 甚大之逼迫。
內以「唯心」、「真常」、「圓融」、「他力」、「神秘」、「欲樂」、「頓證」思想之泛濫日與梵神同化。
幸得波羅王朝之覆育,乃得一長期 之偏安。
然此末期之佛教,論理務瑣屑玄談,供少數者之玩索;實行則迷信淫穢 ,鄙劣不堪!可謂無益於身心,無益於國族。
律以佛教本義,幾乎無不為反佛教者!聞當時王舍城外之屍林中,密者於中修起屍法(可以害人)者,即為數不少 。
佛教已奄奄一息,而又有強暴之敵人來。佛元十四世紀初,阿富汗王摩訶末, 率軍侵略印度,佔高附而都之,回教漸滲入印度內地。相傳侵入者,凡十七次, 每侵入,必舉異教之寺院而悉火之。
佛教所受之損害,可想見也。於是恆河、閻 浮河兩岸,西至摩臘婆,各地之佛徒,改信回教者日眾。其佛教僅存之化區,惟 摩竭陀迤東耳。迨波羅王朝覆亡,回教之侵入益深,漸達東印,金剛上師星散。 不久,王室改宗,歐丹富多梨寺及超岩寺,先後被毀;即僅存之那爛陀寺,亦僅 餘七十餘人。
佛教滅跡於印度大陸,時為佛元十六世紀。佛教興於東方,漸達於 全印,次又日漸萎縮而終衰亡於東方。吾人為印度佛教惜,然於後期之佛教,未 嘗不感其有可亡之道也!

印順導師也講到 : 論理務瑣屑玄談,供少數者之玩索!!!
讀書人! 不要把通俗教化丟給那些 "阿里布達"。