AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

Join the forum, it's quick and easy

AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.

[問題]lisp線性的變更判斷?

2 posters

向下

[問題]lisp線性的變更判斷? Empty [問題]lisp線性的變更判斷?

發表 由 jock1626 2022-08-10, 10:59

請問各位大大,lisp在寫更換線性時,寫判斷式時無法判斷?
代碼:

(DEFUN C:CCLT();;程式名CCLT
  (setvar "cmdecho" 0)
  (if (not (tblsearch "ltype" "HIDDEN"));;判斷無此線型
    (command "-LINETYPE" "L" "HIDDEN" "" "");;載入線型
    )
  (princ "\n選擇要變更成虛線之物件:");;印出"文字"
  (setq ss (ssget));;選物件
  (setq i 0)
  (repeat (sslength ss);;迴圈
    (setq ent (ssname ss i));;設定選的ss圖元資料至ent
    (setq entdata (entget ent));;解析出data
    (setq ent_6 (cdr (assoc 6 entdata)));;取出6的資訊
    (if (= ent_6 nil);;如果裡面沒有資訊
      (progn
 (setq entdata (cons (cons 6 "HIDDEN") entdata));;裡面沒有資訊時寫入
 (setq entdata (subst (cons 6 "HIDDEN") (ASSOC 6 entdata) entdata));;裡面有資訊時寫入
 )
      )
    (entmod entdata);;重新載入data資料
    (setq i (1+ i))
    )
   (princ)
   )
小弟寫到判斷時如果群碼6裡面有資訊的無法寫入變更

指令: !ent6
"HIDDENX10"

當查詢時還是舊的資料!
求救,請問下小弟該如何改才能變更線性!
jock1626
jock1626
一般會員
一般會員

文章總數 : 8
年齡 : 40
來自 : 桃園
職業 : 繪圖員
愛好 : 睡覺
個性 : 是個人吧
使用年資 : 5年
使用版本 : 2016
經驗值 : 180
威望值 : 0
注冊日期 : 2022-05-19
男 水瓶座 狗

回頂端 向下

[問題]lisp線性的變更判斷? Empty 回復: [問題]lisp線性的變更判斷?

發表 由 naruto018 2022-08-11, 07:43

因為你多放了progn
導致if判斷ent_6後的執行程式
沒有跟有資訊的執行程式都併入了沒有資訊的結果
導致有資訊的執行程式沒有動作
去掉progn後修改如下

代碼:
(DEFUN C:CCLT();;程式名CCLT
  (setvar "cmdecho" 0)
  (if (not (tblsearch "ltype" "HIDDEN"));;判斷無此線型
    (command "-LINETYPE" "L" "HIDDEN" "" "");;載入線型
    )
  (princ "\n選擇要變更成虛線之物件:");;印出"文字"
  (setq ss (ssget));;選物件
  (setq i 0)
  (repeat (sslength ss);;迴圈
    (setq ent (ssname ss i));;設定選的ss圖元資料至ent
    (setq entdata (entget ent));;解析出data
    (setq ent_6 (cdr (assoc 6 entdata)));;取出6的資訊
    (if (= ent_6 nil);;如果裡面沒有資訊
 (setq entdata (cons (cons 6 "HIDDEN") entdata));;裡面沒有資訊時寫入
 (setq entdata (subst (cons 6 "HIDDEN") (ASSOC 6 entdata) entdata));;裡面有資訊時寫入
      )
    (entmod entdata);;重新載入data資料
    (setq i (1+ i))
    )
   (princ)
   )
naruto018
naruto018
中級會員
中級會員

文章總數 : 194
年齡 : 30
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 5
經驗值 : 3579
威望值 : 536
注冊日期 : 2016-11-29
藍鵲726號
男 摩羯座 羊

Tiger&蘋果爸 and jock1626 like this post

回頂端 向下

[問題]lisp線性的變更判斷? Empty 回復: [問題]lisp線性的變更判斷?

發表 由 jock1626 2022-08-11, 08:32

naruto018 寫到:因為你多放了progn
導致if判斷ent_6後的執行程式
沒有跟有資訊的執行程式都併入了沒有資訊的結果
導致有資訊的執行程式沒有動作
去掉progn後修改如下

感謝大大!
這樣改完之後可以順利運行!
jock1626
jock1626
一般會員
一般會員

文章總數 : 8
年齡 : 40
來自 : 桃園
職業 : 繪圖員
愛好 : 睡覺
個性 : 是個人吧
使用年資 : 5年
使用版本 : 2016
經驗值 : 180
威望值 : 0
注冊日期 : 2022-05-19
男 水瓶座 狗

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[問題]lisp線性的變更判斷? Ioaoe110 [問題]lisp線性的變更判斷? 2020-310 [問題]lisp線性的變更判斷? Oiu15010 [問題]lisp線性的變更判斷? 2020-211 [問題]lisp線性的變更判斷? Ia15010 [問題]lisp線性的變更判斷? Aizyao10
[問題]lisp線性的變更判斷? Uos15010 [問題]lisp線性的變更判斷? BPl3tjj [問題]lisp線性的變更判斷? Ziao1510 [問題]lisp線性的變更判斷? Oo-2-110 [問題]lisp線性的變更判斷? Zuoiy_10 [問題]lisp線性的變更判斷? Aizyao11
[問題]lisp線性的變更判斷? Aoe1-111 [問題]lisp線性的變更判斷? Uos15011 [問題]lisp線性的變更判斷? RQvAhqF [問題]lisp線性的變更判斷? YdKelqY [問題]lisp線性的變更判斷? K410yWG