有一位僧人,他每天都會去禮拜佛像,並祈求能夠成佛。有一天,他走在路上,突然看見一隻受傷的鹿,他決定去幫助它。他把鹿背在背上,帶到山林裡照顧它,直到它康復後再放生。後來,那位僧人在修行上有了顯著的進展,並最終成佛了。他發現,真正的修行不僅僅是坐在寺廟裡祈求,還需要在現實生活中做出實際行動去幫助他人。這就是佛教中關於「行」的重要性。
Category: Tech
IT Technology, 3C, AI
-
我的 Apps
- Barcode Compare – https://brassaikaotw.com/barcode-compare/
- My Inbasket for Aras Innovator – https://brassaikaotw.com/my-inbasket-for-aras-innovator/
- OOXX Extreme Edition – https://brassaikaotw.com/ooxx-extreme-edition/
- Cheat Space Avactor – https://brassaikaotw.com/my-first-2d-game/
- Run Run Cude – https://brassaikaotw.com/my-first-3d-game/
-
簡單取得 Android 手機唯一識別碼 Hardware Id ( Not Advertising ID 非廣告ID )
- With App Lifecycle 應用程式重裝前都不會改變
- With Andoird OS Profile Lifecycle 作業系統Reset to factory前都不會改變
@SuppressLint("HardwareIds") private fun getHardwareId() : String { var output = Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID) if(output == "") { val pref = this.getSharedPreferences("HardwareIds", Context.MODE_PRIVATE) output = pref.getString("hardware_id","").orEmpty() if(output == "") { output = UUID.randomUUID().toString() val editor = pref.edit() editor.putString("hardware_id", output) editor.apply() } } return output } -
Android Studio : Error LiveLiteralKt Not found!
Fixed by remove character ‘\’ in gradler-wrapper.properties

-
Unity – 程式控制物件時動作時,用Ray前記得要同步一下
Vector3 norVector3 = new(); Physics.SyncTransforms(); if (Physics.Raycast(camRay, out RaycastHit raycastHit, 10) && raycastHit.transform.name.Equals(targetGameObjectName)) { norVector3 = new((float)Math.Round(raycastHit.point.x, 2), (float)Math.Round(raycastHit.point.y, 2), (float)Math.Round(raycastHit.point.z, 2)); output = GetPositionName(norVector3); } -
Aras Innovator – 檔案下載記錄
檔案的下載動作是透過 ItemType:Vault 來運行。
檔案 ItemType:File 與 ItemType:Vault 是透過 ItemType:Locate 關聯。
因此,當使用者有下載檔案動作時,便會觸發 ItemType:Vault 和 ItemType:Locate 的 [Get] 動作。故我們可以藉由在 ItemType:Locate 的 Server Method : OnAfterGet,實作檔案下載記錄。透過 source_id 取得包含檔案名稱等檔案資訊、透過呼叫 Innovator.getUserID() 取得下載人的資料。
Aras.Server.Security.Identity plmIdentity = Aras.Server.Security.Identity.GetByName("Aras PLM");
bool permissionWasSet = Aras.Server.Security.Permissions.GrantIdentity(plmIdentity);
Innovator inno = this.getInnovator();
try {
string sqlCommandText = string.Format(
@"INSERT INTO file_get_records(username,filename)
SELECT [USER].KEYED_NAME,[FILE].[FILENAME]
FROM [USER],[FILE]
WHERE [USER].ID='{0}' AND [FILE].ID='{1}'", inno.getUserID(), this.getProperty("source_id"));
inno.applySQL(sqlCommandText);
}
finally {
if (permissionWasSet) {
Aras.Server.Security.Permissions.RevokeIdentity(plmIdentity);
}
}
return this; -
Aras Innovator – Method臨時提升權限及使用時機
當Method需要用到SQL指令時,需透過臨時提升權限的方式來執行。而其他情境則幾乎不適用!即使臨時提升權限,仍無法以目標Identity的權限對ItemType做異動。
Aras.Server.Security.Identity plmIdentity = Aras.Server.Security.Identity.GetByName(“Innovator Admin”);
bool PermissionWasSet = Aras.Server.Security.Permissions.GrantIdentity(plmIdentity);
Innovator inno = this.getInnovator();string sqlCmd = “UPDATE Document SET ineffective_date=GETUTCDATE() WHERE ID=’”+this.getID()+”‘”;
inno.applySQL(sqlCmd);if (PermissionWasSet == true)
Aras.Server.Security.Permissions.RevokeIdentity(plmIdentity);return this;
-
Blender – 物件輸出前注意事項:破圖修正、Transform歸零、中心原點校正 和 匯出包含材質Materials貼圖Textures的 FBX(.fbx) 檔案
Blender 建模完成後,務必確認物件 面 的方向(法線)是否正確,以避免動畫或匯出給其他如Unity等程式時,發生破圖現象。
- 設定 Layout 模式的層疊(Overlays)參數,勾選[幾何]內的[面](face)。這時有法線問題面便會呈現紅色,而沒有問題的則是呈現藍色。
- 點選要修正的物件,並按下[Tab]進入編輯模式。
- 將選擇模式切換到點、線、面中的面
- 點選要修正法線的面,按下[Shift]+[N]修正。
- 確認沒有紅色的面即可。

在匯出成FBX(.fbx)部分,建議以物件為單位個別匯出,方便管理使用。
輸出成FBX前記得要將位置、縮放等Transform設定歸零。
[Ctrl] + [A] –> 全部套用原點校正(物件旋轉的中心點):點選物件–>右鍵選單 –>設定原點 –> 依需要選擇適合的原點
另外,物件上面材質的[基礎顏色],多重色彩或紋理等疊加的設定,有很大的概率無法隨之匯出。故強烈建議用圖片貼圖取代之,如[基礎顏色]使用[影像紋理],在[Texture Paint]模式下編輯等。
- 點選要匯出的物件,[檔案]–>[匯出]–>[FBX(.fbx)]
- [路徑模式(Path)]選擇[複製(Copy)],並核選右側的按鈕以嵌入貼圖
- 勾選Limit to [所勾選的物件 Select object]
- 按下[匯出FBX]即可

Reference By: https://docs.blender.org/manual/en/latest/modeling/meshes/editing/mesh/normals.html


