系統管理員
文章: 14203
註冊時間: 2026年 4月 30日, 11:43
平時作圖會收到一些圖面,這些圖面的物件因不明原因被關閉,有點類似圖層關閉,
但是沒有物件開關的功能,也就是說研判該物件可能被LISP程式的方式關閉,
所以一般方式選取不到物件,只能使用 Ctrrl+A 全選方式或 QSELECT快速選取 方式來選取,
圖面上還有 40個 圖層名為2 的 文字物件。
請問是否可以處理?
謝謝!!
附件:
http://www.badongo.com/file/3576993
但是沒有物件開關的功能,也就是說研判該物件可能被LISP程式的方式關閉,
所以一般方式選取不到物件,只能使用 Ctrrl+A 全選方式或 QSELECT快速選取 方式來選取,
圖面上還有 40個 圖層名為2 的 文字物件。
請問是否可以處理?
謝謝!!
附件:
http://www.badongo.com/file/3576993
系統管理員
文章: 14203
註冊時間: 2026年 4月 30日, 11:43
真的是很奇怪的圖檔
看性質是單行文字(text),但是裡面是空的資料,依掣點看起來它可能有資料(或一堆空白)
可是文字的掣點不是一個(text)就是四個(mtext),這些隱藏資訊都只有兩個...
目前只有在ctrl+a選取模式下將文字形質之內容欄位
由原看到的 *各種*
改填入 任意字元
這樣圖面就會出現可選取字串
但這並非解決方案(如果目的是選取--刪除,那就按ctrl+a就可以了)
想知道實際在什麼操作方式下會出現此類問題...目前無解
看性質是單行文字(text),但是裡面是空的資料,依掣點看起來它可能有資料(或一堆空白)
可是文字的掣點不是一個(text)就是四個(mtext),這些隱藏資訊都只有兩個...
目前只有在ctrl+a選取模式下將文字形質之內容欄位
由原看到的 *各種*
改填入 任意字元
這樣圖面就會出現可選取字串
但這並非解決方案(如果目的是選取--刪除,那就按ctrl+a就可以了)
想知道實際在什麼操作方式下會出現此類問題...目前無解
系統管理員
文章: 14203
註冊時間: 2026年 4月 30日, 11:43
我想目前也只能使用此方法,因為是收到別人的圖,所以也不知是如何造成的~
謝謝!
謝謝!
系統管理員
文章: 14203
註冊時間: 2026年 4月 30日, 11:43
有到AUGI問了一下,回覆該圖面是有文字物件,但是都沒有資料,建議直接刪除
測試語法:
(defun c:test (/ cnt ep etyp sp ss sse ssl ssn str)
(if
(setq ss (ssget "_X"))
(progn
(setq ssl (sslength ss))
(setq cnt 0)
(repeat
ssl
(setq ssn (ssname ss cnt))
(setq sse (entget ssn))
(setq etyp (cdr (assoc 0 sse)))
(setq str (cdr (assoc 1 sse)))
(if
(= etyp "TEXT")
(progn
(setq sp (cdr (assoc 10 sse)))
(setq ep (polar sp (* pi 1.5) 100))
(command "_ray" sp ep "")
) ; progn
) ; if
(alert (strcat "\nThis object is"
"\n"
"\n" etyp
"\n"
"\n" (if
(= str nil)
(princ "\nIt's not object")
(progn
(if
(= str " ")
(princ "\nIt's without string")
) ; if
) ; progn
) ; if
))
(setq cnt (1+ cnt))
) ; repeat
) ; progn
(alert "\nThere is not object")
) ; if
(princ)
) ; defun
測試語法:
(defun c:test (/ cnt ep etyp sp ss sse ssl ssn str)
(if
(setq ss (ssget "_X"))
(progn
(setq ssl (sslength ss))
(setq cnt 0)
(repeat
ssl
(setq ssn (ssname ss cnt))
(setq sse (entget ssn))
(setq etyp (cdr (assoc 0 sse)))
(setq str (cdr (assoc 1 sse)))
(if
(= etyp "TEXT")
(progn
(setq sp (cdr (assoc 10 sse)))
(setq ep (polar sp (* pi 1.5) 100))
(command "_ray" sp ep "")
) ; progn
) ; if
(alert (strcat "\nThis object is"
"\n"
"\n" etyp
"\n"
"\n" (if
(= str nil)
(princ "\nIt's not object")
(progn
(if
(= str " ")
(princ "\nIt's without string")
) ; if
) ; progn
) ; if
))
(setq cnt (1+ cnt))
) ; repeat
) ; progn
(alert "\nThere is not object")
) ; if
(princ)
) ; defun
系統管理員
文章: 14203
註冊時間: 2026年 4月 30日, 11:43
感謝您的測試,不支可否將lisp分享出來呢~我想要測試看看。謝謝!
ps:請問AUGI是什麼呢?
ps:請問AUGI是什麼呢?
系統管理員
文章: 14203
註冊時間: 2026年 4月 30日, 11:43
我有收到一個網友的問題,因為我也找不到原因,想請問是否有人知道可否幫幫忙~
附件的檔案大小異常的大(20mb),因為圖面有一些 處理碼 地資訊,所以不能複製後到另一圖面貼上,
這樣常常造成檔案傳輸有困難,不知道是否也隱藏了什麼資訊被關閉,才會造成檔案異常的大,
所以要如而除錯才能把檔案縮小,還是說此檔案以損毀而無法修復呢?
謝謝!!
附檔位置:
http://www.badongo.com/file/3601312
附件的檔案大小異常的大(20mb),因為圖面有一些 處理碼 地資訊,所以不能複製後到另一圖面貼上,
這樣常常造成檔案傳輸有困難,不知道是否也隱藏了什麼資訊被關閉,才會造成檔案異常的大,
所以要如而除錯才能把檔案縮小,還是說此檔案以損毀而無法修復呢?
謝謝!!
附檔位置:
http://www.badongo.com/file/3601312
系統管理員
文章: 14203
註冊時間: 2026年 4月 30日, 11:43
前面那一段文字就是lisp內容
您可以剪貼到小作家並另存成附檔名為lsp的檔案
例如: test.lsp
另外,AUGI是Autodesk User Group Internationl的縮寫
主要是提供全球 Autodesk 用戶的一個討論區,連結如下:
http://forums.augi.com/index.php?
您可以剪貼到小作家並另存成附檔名為lsp的檔案
例如: test.lsp
另外,AUGI是Autodesk User Group Internationl的縮寫
主要是提供全球 Autodesk 用戶的一個討論區,連結如下:
http://forums.augi.com/index.php?
系統管理員
文章: 14203
註冊時間: 2026年 4月 30日, 11:43
抱歉~因為我之前也是想要複製來測測看,這個網頁好像不允許複製文章ㄟ,還是我的權限不夠呢~
請問這個lisp的用法,剛剛測試過了並沒有刪除空字串的文字ㄟ!
請問這個lisp的用法,剛剛測試過了並沒有刪除空字串的文字ㄟ!
系統管理員
文章: 14203
註冊時間: 2026年 4月 30日, 11:43
真的很抱歉,忘了這個網頁有限制複製的語法
但依照您第二句話來看,應該已經有測試過了
這個LSIP是AGUI上的人給的,只供檢查圖面文字資料,並沒有提供刪除功能...
我再問看看對方願不願意寫一個...
但依照您第二句話來看,應該已經有測試過了
這個LSIP是AGUI上的人給的,只供檢查圖面文字資料,並沒有提供刪除功能...
我再問看看對方願不願意寫一個...
系統管理員
文章: 14203
註冊時間: 2026年 4月 30日, 11:43
OK~謝謝你!
我昨天有寫一個 刪除空字串 的測試小程式,已經大概可以了!
(DEFUN C:BBB ()
(SETQ TILE (GETVAR "TILEMODE"))
(COMMAND "TILEMODE" "0")
(setq TT (ssget "X" '((0 . "TEXT") (1 . ""))))
(IF (/= TT nil) (COMMAND "ERASE" TT "") (PROMPT "\n*無空字串文字1*"))
(setq TT1 (ssget "X" '((0 . "TEXT") (1 . " "))))
(IF (/= TT1 nil) (COMMAND "ERASE" TT1 "") (PROMPT "\n*無空字串文字2*"))
(setq TT2 (ssget "X" '((0 . "TEXT") (1 . " "))))
(IF (/= TT2 nil) (COMMAND "ERASE" TT2 "") (PROMPT "\n*無空字串文字3*"))
(setq TT3 (ssget "X" '((0 . "MTEXT") (1 . ""))))
(IF (/= TT3 nil) (COMMAND "ERASE" TT3 "") (PROMPT "\n*無空字串多行文字1*"))
(COMMAND "TILEMODE" "1")
(setq TT (ssget "X" '((0 . "TEXT") (1 . ""))))
(IF (/= TT nil) (COMMAND "ERASE" TT "") (PROMPT "\n*無空字串文字1*"))
(setq TT1 (ssget "X" '((0 . "TEXT") (1 . " "))))
(IF (/= TT1 nil) (COMMAND "ERASE" TT1 "") (PROMPT "\n*無空字串文字2*"))
(setq TT2 (ssget "X" '((0 . "TEXT") (1 . " "))))
(IF (/= TT2 nil) (COMMAND "ERASE" TT2 "") (PROMPT "\n*無空字串文字3*"))
(setq TT3 (ssget "X" '((0 . "MTEXT") (1 . ""))))
(IF (/= TT3 nil) (COMMAND "ERASE" TT3 "") (PROMPT "\n*無空字串多行文字1*"))
(COMMAND "TILEMODE" TILE)
(PRINC)
)
PS:另外可否請你將我那個20mb的檔案異常大的問題也貼在AUGI提問呢!謝謝
我昨天有寫一個 刪除空字串 的測試小程式,已經大概可以了!
(DEFUN C:BBB ()
(SETQ TILE (GETVAR "TILEMODE"))
(COMMAND "TILEMODE" "0")
(setq TT (ssget "X" '((0 . "TEXT") (1 . ""))))
(IF (/= TT nil) (COMMAND "ERASE" TT "") (PROMPT "\n*無空字串文字1*"))
(setq TT1 (ssget "X" '((0 . "TEXT") (1 . " "))))
(IF (/= TT1 nil) (COMMAND "ERASE" TT1 "") (PROMPT "\n*無空字串文字2*"))
(setq TT2 (ssget "X" '((0 . "TEXT") (1 . " "))))
(IF (/= TT2 nil) (COMMAND "ERASE" TT2 "") (PROMPT "\n*無空字串文字3*"))
(setq TT3 (ssget "X" '((0 . "MTEXT") (1 . ""))))
(IF (/= TT3 nil) (COMMAND "ERASE" TT3 "") (PROMPT "\n*無空字串多行文字1*"))
(COMMAND "TILEMODE" "1")
(setq TT (ssget "X" '((0 . "TEXT") (1 . ""))))
(IF (/= TT nil) (COMMAND "ERASE" TT "") (PROMPT "\n*無空字串文字1*"))
(setq TT1 (ssget "X" '((0 . "TEXT") (1 . " "))))
(IF (/= TT1 nil) (COMMAND "ERASE" TT1 "") (PROMPT "\n*無空字串文字2*"))
(setq TT2 (ssget "X" '((0 . "TEXT") (1 . " "))))
(IF (/= TT2 nil) (COMMAND "ERASE" TT2 "") (PROMPT "\n*無空字串文字3*"))
(setq TT3 (ssget "X" '((0 . "MTEXT") (1 . ""))))
(IF (/= TT3 nil) (COMMAND "ERASE" TT3 "") (PROMPT "\n*無空字串多行文字1*"))
(COMMAND "TILEMODE" TILE)
(PRINC)
)
PS:另外可否請你將我那個20mb的檔案異常大的問題也貼在AUGI提問呢!謝謝