[討論]抓取圖面物件id,利用itoa轉換後結果不同
2 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]抓取圖面物件id,利用itoa轉換後結果不同
最近在寫 AutoLisp,主要功能是
選擇圖面中的物件,並回傳其id
(這個id就是功能變數中使用的id)
但在測試的過程中,發現取得物件id後,該id本身會是整數型別,但經過 itoa 轉換後,顯示的字串卻與整數值內容不同(本例從 42 變成 "2303122389584")
以下稍微說明我的測試內容
不曉得版上大大是否能指點迷津~
以下為截圖內容
選擇圖面中的物件,並回傳其id
(這個id就是功能變數中使用的id)
但在測試的過程中,發現取得物件id後,該id本身會是整數型別,但經過 itoa 轉換後,顯示的字串卻與整數值內容不同(本例從 42 變成 "2303122389584")
以下稍微說明我的測試內容
- 代碼:
;1. 將整數 42 賦值給變數 test1,並檢查 test1 型別、測試轉換成字串後的結果
(setq test1 42)
(type test1) ;結果顯示為INT
(itoa test1) ;結果顯示為42
;2. 檢查 objId 內容及型別
!objId ;結果顯示為42
(type objId) ;結果顯示為INT
;3. 比較 test1 與 objId 是否相同(objId即選擇的物件id)
(= test1 objId) ;結果顯示T,相同
;4. 將 test1 與 objId 轉換成字串,結果卻不同
(itoa test1) ;結果顯示為 "42"
(itoa objId) ;結果顯示為 "2303122389584"
不曉得版上大大是否能指點迷津~
以下為截圖內容
joejoeLee 在 2023-04-26, 12:28 作了第 1 次修改 (原因 : 補充程式備註)
joejoeLee- 一般會員
- 文章總數 : 3
年齡 : 29
來自 : 台南永康區
職業 : 工程設計
愛好 : 健身玩吉他
個性 : 積極好學
使用年資 : 4個月
使用版本 : 2023
經驗值 : 624
威望值 : 0
注冊日期 : 2023-03-29
回復: [討論]抓取圖面物件id,利用itoa轉換後結果不同
建議你把完整LISP 放上. 比較好理解~
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8075
威望值 : 1188
注冊日期 : 2009-06-03
回復: [討論]抓取圖面物件id,利用itoa轉換後結果不同
後來有多找一些相關文章,應該是因為 objId 本身值太大(即 2303122389584)
超過 AutoLisp 整數的位元上限(32位元),產生截斷導致
超過 AutoLisp 整數的位元上限(32位元),產生截斷導致
joejoeLee- 一般會員
- 文章總數 : 3
年齡 : 29
來自 : 台南永康區
職業 : 工程設計
愛好 : 健身玩吉他
個性 : 積極好學
使用年資 : 4個月
使用版本 : 2023
經驗值 : 624
威望值 : 0
注冊日期 : 2023-03-29
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章