2023年9月26日 星期二

TG - 將英文大寫字母和阿拉伯數字的TEXT轉畫成線和弧的圖形-用於雷射刻字

 TG.vlx 執行選取 text 圖元, 以畫出相對應的線條圖形.... 2023.09.26

CAD 內的字體檔有單線體, ttf, ... 在雷射刻字的使用上, 會花費很長的時間.

雖有 txtexp 炸開文字的功能轉文字成 pline. 但所有弧形的地方, 會由許多小線段組成.
即使如上圖中所選取的單線文字, 每個單字都會由過多的小線段組成.

上圖中下面兩行字更不適用於簡易雷射刻字.

目前需求的是單線體, 刻字時間短的字體.

上圖左邊是文字串, 右邊是以 txtexp 炸開後的 pline 圖形.

如上放大 pline 圖形部分, 即使選用最簡化的單線體, 弧形處仍是很多線段.

圓弧部分較滑順的單線字體, 轉成 pline 後, 線段更是密集.

再放大看, 原字高為 20 mm, 炸開後的 pline 圖形.

所有 .ttf 的字體, 經 txtexp 炸開後, 更是密密麻麻. 雷射刻字就全糊了.




此 TG 程式, 是先建立以線和弧組成的英文大寫字母和阿拉伯數字.
然後, 每個單字, 建成圖塊.
每個單字都用最簡單的筆劃,
當然要符合 雷射刻字 的基本要求.

用 TG 程式, 將文字轉成圖塊, 再將圖塊炸開成 線 和 弧.

以下是 TG 使用的範例.
上圖中, 洋紅色的文字是 TG 要抓取的文字 TEXT 圖元.

執行 TG 程式.

程式內定只選 TEXT 圖元, 所以可以窗選.


選取完畢, 就會在每個 TEXT 下方, 以同樣字高, 插入單字的圖塊, 再炸開圖塊.
如上圖中, 黃色的 '字'.

放大單一工件.

黃色部分, 確實是線和弧組成的圖形.


這是多個工件, 可放在用一圖紙, 下單.

單一工件完整的繪圖, 大致如上圖,
白色線是工件輪廓, 黃色線是刻字.
洋紅色文字, 在雷射作業中, 無作用.
但是, 在以 nip 程式建立 .dxf 檔時, 可作為 dxf 檔名的一部分.



***  程式要執行, 須將 雷射刻字-01.dwg 圖檔中的英文大寫字母

     ABCDEFG....XYZ 和 阿拉伯數字 1234567890 的圖塊, 複製到圖檔內.  ***


所以, 要先將 TG.VLX / TG.ZELX 程式, 和 此 雷射刻字-01.dwg 複製到

支援檔案搜尋路徑資料夾.


然後在 工具->載入應用程式->起動組->新增 TG.VLX , 之後開新圖檔, 就會預先載入.


指令: TG


選取物件:     ( 請選取 text , 文字串, 可以多選 )


確定後, 程式會先讀取文字內的單字, S, 2, P, 3, 0, 5,....

然後 S 找到圖塊 BK-S , 插入到 S 下方 2 倍字高的座標點,

依序在 BK-S 後方字高距離插入 BK-2, .......

最終, 在原選取文字串下方完成相對英文大寫字母或阿拉伯數字一行圖塊字串.

再 炸開 這一行由 圖塊 組成的文字串, 就完成繪製原選取文字串的圖形

(僅由 圓弧 所組成 ).


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


2023.09.23 將文字串旋轉角度設為0, 改為抓取文字旋轉角度 en_ang.

                   即圖塊插入, 旋轉角度會同原字串的角度.

2023.09.23 新增設定目前圖層為 "YELLOW" , 再執行此程式.

                   避免目前圖層為"WHITE", 執行 tg 時有此圖塊未炸開, 仍在切割圖層.

                   (command "EXPLODE" "c" exp_pt2 exp_pt1) 

                   -> 加入 "c", 以框交方式, 四方框選取物件.

                   如未加入 "c" 或 "w" 的框選,

                   則 exp_pt2 或 exp_pt1 點可能位於物件上.

2023.09.25 修改選取 text 圖元時, (setvar "pickbox" 0) -> (setvar "pickbox" 8)

2023.09.26 新增 (setvar "QAFLAGS" 1), 使 explode 可以多選物件.

2023.09.27 指令加註解, 方便日後修改.

2023.09.28 設 字高大於等於 height_min 以上,才執行文字轉圖形.

                   height_min 為變數, 可修改 (setq height_min 15)


2023年2月8日 星期三

uns-將圖框中的縮放比例寫入nip的圖塊插入比例的屬性欄內,並縮放圖塊

 uns.zelx 將 圖框 中的 縮放比例 寫入 nip 的 圖塊插入比例 的屬性欄內, 並 縮放圖塊


uns.zelx 將 [ 圖框 ] 中的縮放比例寫入 [ nip ] 的圖塊插入比例的屬性欄內,並縮放圖塊. 使圖框和工件兩圖塊的 縮放比例 相同. 圖紙中的文字, 標註和圖形, 每張都會一致, 不會忽大忽小.

右圖為範例, 圖框右側中間的 3.00 和 工件圖塊左下角的 3 是各自的 縮放比例.

點選圖框, 在 [ 性質 ] 縮放比例 修改為 4.

圖檔未 regen 前, 圖框的圖塊屬性無更新, 仍舊是 3.00

執行 uns 前的圖框內看起來如上圖.


執行 uns.zelx , 按 << 縮放 nip 圖塊 >> 即可同步 縮放比例 的值.


結果如上, 紅框所示, 全為 4.00

如要 標註 也調成相同比例. 其調整的項目為, 標註整體比例.

cds.zelx 可以一次調整圖框內所有標註的標註整體比例, 如上圖所示.
即 圖框, 工件圖塊, 標註 三者的縮放比例都一致, 為 4.00


2022年12月28日 星期三

CBLK.zelx__統計圖塊數量的表格清單

程式名稱 : CBLK.zelx

載入指令 : (load "CBLK")

執行指令 : CBLK

BTN.vlx__畫序號球

程式名稱 : BTN.vlx

載入指令 : (load "BTN")

執行指令 : BTN


BTN.zelx for zwcad


adim.zelx__批次自動以座標標註方式標註圓心的座標值

 adim.zelx 批次自動以座標標註方式標註圓心的座標值.

CDM_檢查圖形尺寸標註是否為一比一 for ZWCAD

CDM.zelx 可以在模型空間炸開不含屬性的圖塊, 並將圖元依條件歸到特定圖層, 再檢查標註尺寸是否為   1 : 1 .


Design: ya-kuei88,

date : 2011.05.18,

modified : 2021.07.02

2021.12.17

修改適用於 ZWCAD 版本

2021.12.23

 modified ACAD.lin -> ZWCADiso.lin, divide -> PHANTOM

2022.01.14

新加 (check_layer)(check_dim_style) 兩個副程式.

2022.01.28

加入 (/= sent_layer "反壓折線") 判別, 不將反壓折線歸入隱藏線.

2022.06.23

 [check_layer] 新增/設定顏色,出圖筆寬 LineWeight ; 適用於物件的 Linetype / Lineweight / Color 三項設為 Bylayer

2022.07.26

 新增線型名稱, [ AM_ISO02W050x2, ACAD_ISO02W100 -> 隱藏線 ], [ DASHDOT, ACAD_ISO10W100 -> 中心線 ]

2022.08.17

各項 依 xx 變更圖層名稱 的先後執行順序, 稍做調整. 從最直接相關到可能相關, 次第順序執行.

 2022.08.22

 修改 圖塊/標註名稱 更名的尾部流水號CDATE 系統變數中的 時分秒 共六碼. 例如 : "20220822.08375579" -> "22" + "083755".   如此, 應可確保一個月內的更名都不會相同.

2022年12月22日 星期四

qqq.zelx__將 nip 圖塊屬性資訊, 匯出到 CSV 檔案

程式名稱 : qqq.zelx

載入指令 : (load "qqq")

執行指令 : qqq

BTBE.zelx__用於將資料夾 ( 含子資料夾 ) 中的所有 DXF 檔, 批次做 [ 文字 ] 轉換為 [ 聚合線 ], 並縮放圖形到 實際範圍 後, 再存檔.

 程式名稱 : btbe.zelx

載入指令 : (vl-load-all "btbe")

執行指令 : btbe

**********************************************************************

BTBE.zelx 用於將資料夾 ( 含子資料夾 ) 中的所有 DXF 檔, 批次做 [ 文字 ] 轉換為 [ 聚合線 ], 並縮放圖形到 實際範圍 後, 再存檔...

atv.zelx__批次修改 單一個 帶屬性圖塊 的 全部 單項屬性值 的程式

 atv.zelx

批次修改 單一個 帶屬性圖塊全部 單項屬性值 的程式

如:

我建立的 圖框 圖塊名稱fde,

屬性標籤有: 客戶名稱, 客戶編號, 工令編號, 接單日期, 交貨日期, 材質, 板厚, ....

2022年12月21日 星期三

2PL.zelx__可以將 line, arc, pline 轉成 LWPOLYLINE, 並組成連續或封閉的 LWPOLYLINE

 2PL.zelx

line, arc, pline 轉成 LWPOLYLINE, 並組成連續封閉LWPOLYLINE.

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


2PL.zelx 可以將 line, arc, pline 轉成 LWPOLYLINE, 並組成連續或封閉的LWPOLYLINE.


EPL.zelx 則是將 LWPOLYLINE 炸開成 line, arc, 也可以用炸開指令 EXPLODE


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


轉成 LWPOLYLINE 之後, 可以 CPC.ZELX 選取 polyline 圖元, 以顯示 polyline 是否為 封閉聚合線未封閉的 polyline 反白顯示, 並在 起點 和 終點 畫點, 可看出未封閉的位置所在. 即: 看到 2 點, 表示 2 點之間未封閉, 可能有間隙, 也可能有重疊圖元, 或是外形沒有封閉, 分成多段, 可以在青色點附近快速找到未封閉的原因.


要檢查輪廓是否有形成封閉, 以 2pl.zelx 先將圖元建立成 LWPOLYLINE, 再用 cpc.zelx 快速檢查 LWPOLYLINE 是否有封閉, 是最快的方式.


也可以用 邊界 boundary 指令試試建立封閉的 polyline 曲線. 執行前, 建議將目前的圖層, 設成和欲選取範圍的圖元, 不同的圖層, 這樣比較容易看到所建立的曲線和原先的圖元.


如果是有重疊圖元所造成的未封閉, 可以 oko.zelx 來消除多餘的或重疊的圖元. 但有可能也會誤判, 刪除了不該刪的重要圖元. 執行後, 還是要稍微檢查一遍.


另外也可能在所選範圍中有一些長度為 0 的線段, 可以用 dnz.zelx 以執行刪除長度小於指定值的圖元.


目前為止, 若要縮減曲線的分段數, 又不會變形太多. 用 trumpf 排版軟體的消點程式, 可得到最快速, 最少點數, 最少變形量的曲線.

ctp.zelx 比較適用於純弧形, 無直線段的曲線, 可以快速得到較少段數的曲線.

    

以 nip 程式建立工件資訊圖塊時, 右上方的框線內有異常.

實際重量為負值, 不合理. 表示外輪廓未封閉.

執行 2pl.zelx 建立 pline 曲線

點選外輪廓, 為一聚合線, 但未封閉.

執行 cpc.zelx 後







圖形左下角線條接合後, nip 的重量值皆大於零, 正常了.

YK_擷取電腦註冊次數的配對檔案

 程式名稱 : YK.vlx

載入指令 : (load "YK")

執行指令 : YK


**********************************************************************

請輸入 YK 指令, 用於取得 vlx 檔的 [ 配對碼 ] 以設定新的使用次數.

相關聯的檔案: YK.lsp, YK.sld

**********************************************************************


  • 1. 首先輸入您所下載使用的 .VLX 檔案名稱如:  MBP.VLX, NIP.VLX, SBT.VLX,..... 等完整單一個檔案名稱.
  • 如果找到這個檔案, 在步驟 2, 會顯示配對碼和匯出檔案.
  • 請按確定, 退出此程式. 並將匯出檔案 ( yk_code_xxxxxxxxx.txt ) e-mail 給阿貴, 方便阿貴製作註冊檔 ykr.vlx
  • yk_code_xxxxxxxxx.txt 的內容如下:

D:\lisp\yk_code_749600296.txt

MASTER13

MASTER13

Administrator

749600296

((C 2 1149681640) (D 2 749600296) (E 2 215386203) (F 4 nil) (X 3 -795965760) (Y 3 -795965760) (Z 3 -795965760))

  • 阿貴取其中數碼作為配對碼, 寫入 ykr.vlx 中, 執行 ykr.vlx 時, 由程式找尋該電腦中, 是否存在唯一的配對碼, 存在相同的配對碼, 即執行註冊使用次數.


ykr.vlx 程式中, 可以建立多個配對碼, 組成配對碼清單即 此程式可以在多台電腦上, 執行 ykr.vlx 註冊特定的 阿貴寫的 autolisp 程式.

註冊多個 .vlx 程式, 使用次數要一致, 才方便 ykr.vlx 程式執行.


在指令行 (load "yk"), 以載入 YK.vlx , 然後下 YK, 以執行 yk.vlx 程式.

在 [程式名稱] 欄位, 輸入您所下載的 AutoLisp 程式的全名, 如 sbt.vlx
程式確定找到 sbt.vlx 則會在第二項顯示 配對碼及匯出檔案的路徑和檔名.

如上圖所示, 配對碼為 749600296, 匯出檔案為 D:\lisp\yk_code_749600296.txt
即檔案名稱為yk_code_749600296.txt
儲存在 D:\lisp\ 磁碟機資料夾內.
通常是在您使用的 .vlx 檔案相同的資料夾.

D:\lisp\yk_code_749600296.txt
檔案的內容大致如上圖所示.
請將這個檔案, e-mail 給阿貴, 並註明 程式名稱, 註冊金額, 即可為您製作 ykr.vlx 註冊使用次數.