[已解決][討論]程式修改,下列程式要如何修改,只要點取標註,不需再輸入標註值即可達到我的要求
3 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
[已解決][討論]程式修改,下列程式要如何修改,只要點取標註,不需再輸入標註值即可達到我的要求
(defun c:dxft()
(setq bk1(entsel "\n選取欲修改的尺寸 : "))
(setq na (getint "\n輸入標註值 :"))
(setq b1 (entget (car bk1)))
(setq OLD (assoc 1 b1))
(setq naa (/ na 26))
(setq nab (itoa naa))
(setq na1 (strcat "26*"nab))
(setq NEW (CONS 1 NA1))
(SETQ B1 (SUBST NEW OLD B1)
)
(ENTMOD B1)
(princ)
)
(setq bk1(entsel "\n選取欲修改的尺寸 : "))
(setq na (getint "\n輸入標註值 :"))
(setq b1 (entget (car bk1)))
(setq OLD (assoc 1 b1))
(setq naa (/ na 26))
(setq nab (itoa naa))
(setq na1 (strcat "26*"nab))
(setq NEW (CONS 1 NA1))
(SETQ B1 (SUBST NEW OLD B1)
)
(ENTMOD B1)
(princ)
)
老水牛 在 2010-10-08, 08:52 作了第 1 次修改
老水牛- 初級會員
- 文章總數 : 107
年齡 : 63
來自 : 台北縣
職業 : 電機
愛好 : 閱讀
個性 : 溫和
使用年資 : 6
使用版本 : 2006
積分 : 1
經驗值 : 6128
威望值 : 0
注冊日期 : 2008-10-17
回復: [已解決][討論]程式修改,下列程式要如何修改,只要點取標註,不需再輸入標註值即可達到我的要求
老水牛 寫到:(defun c:dxft()
(setq bk1(entsel "\n選取欲修改的尺寸 : "))
(setq na (getint "\n輸入標註值 :"))
(setq b1 (entget (car bk1)))
(setq OLD (assoc 1 b1))
(setq naa (/ na 26))
(setq nab (itoa naa))
(setq na1 (strcat "26*"nab))
(setq NEW (CONS 1 NA1))
(SETQ B1 (SUBST NEW OLD B1)
)
(ENTMOD B1)
(princ)
)
看不懂你的需求是啥 ?
如果說你的 (setq na (getint "\n輸入標註值 :")) 這部份指的是標註上的"值"
那你也已經知道它是多少了
程式稍微修改一下即可
(defun c:dxft()
(setq bk1(entsel "\n選取欲修改的尺寸 : "))
;;;;;;(setq na (getint "\n輸入標註值 :"))
(setq b1 (entget (car bk1)))
(setq na (cdr (assoc 1 b1)))
(setq OLD (assoc 1 b1))
(setq naa (/ na 26))
(setq nab (itoa naa))
(setq na1 (strcat "26*"nab))
(setq NEW (CONS 1 NA1))
(SETQ B1 (SUBST NEW OLD B1)
)
(ENTMOD B1)
(princ)
)
綠色為原程式移除的部份
紅色為新增的部份
***未經測試~僅以程式架構做修正***
阿希- 高級會員
- 文章總數 : 348
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6825
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
回復: [已解決][討論]程式修改,下列程式要如何修改,只要點取標註,不需再輸入標註值即可達到我的要求
阿希大大:
我要的需求是,選取標註,取得該標註值,經計算後,將計算後的值取代原標註。
也就是說 我要如何抽取尺寸標註DXF碼中的標註文字
我要的需求是,選取標註,取得該標註值,經計算後,將計算後的值取代原標註。
也就是說 我要如何抽取尺寸標註DXF碼中的標註文字
老水牛- 初級會員
- 文章總數 : 107
年齡 : 63
來自 : 台北縣
職業 : 電機
愛好 : 閱讀
個性 : 溫和
使用年資 : 6
使用版本 : 2006
積分 : 1
經驗值 : 6128
威望值 : 0
注冊日期 : 2008-10-17
回復: [已解決][討論]程式修改,下列程式要如何修改,只要點取標註,不需再輸入標註值即可達到我的要求
老水牛 寫到:阿希大大:
我要的需求是,選取標註,取得該標註值,經計算後,將計算後的值取代原標註。
也就是說 我要如何抽取尺寸標註DXF碼中的標註文字
上面我修改的程式可行嗎 ?
阿希- 高級會員
- 文章總數 : 348
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6825
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
回復: [已解決][討論]程式修改,下列程式要如何修改,只要點取標註,不需再輸入標註值即可達到我的要求
我將程式作修改如下,你試用看看
要抓出尺寸的值必須使用 dxf群碼 42 ,不是 1
因為尺寸是內定值 <>,這樣的值是無法運算的
- 代碼:
(defun c:dxft()
(setq bk1(entsel "\n選取欲修改的尺寸 : "))
(setq b1 (entget (car bk1)))
(setq na (cdr (assoc 42 b1)))
(setq OLD (assoc 1 b1))
(setq naa (/ na 26))
(setq nab (rtos naa))
(setq na1 (strcat "26*" nab))
(setq NEW (CONS 1 NA1))
(SETQ B1 (SUBST NEW OLD B1))
(ENTMOD B1)
(princ)
)
要抓出尺寸的值必須使用 dxf群碼 42 ,不是 1
因為尺寸是內定值 <>,這樣的值是無法運算的
張譽璋- 榮譽顧問
- 文章總數 : 304
年齡 : 54
來自 : 彰化縣員林鎮
職業 : 機械設計工程師/AutoCAD講師/AutoCAD外掛系統開發/AutoCAD書籍作者
愛好 : 旅行及電影
個性 : 風趣健談
使用年資 : 25年
使用版本 : AutoCAD2010/2011/2012/2013
積分 : 20
經驗值 : 7521
威望值 : 641
發帖精華 : 2
回帖精華 : 1
注冊日期 : 2008-05-28
回復: [已解決][討論]程式修改,下列程式要如何修改,只要點取標註,不需再輸入標註值即可達到我的要求
感謝張老師的指導。
讓我對DXF群碼有更進一步的了解。
讓我對DXF群碼有更進一步的了解。
老水牛- 初級會員
- 文章總數 : 107
年齡 : 63
來自 : 台北縣
職業 : 電機
愛好 : 閱讀
個性 : 溫和
使用年資 : 6
使用版本 : 2006
積分 : 1
經驗值 : 6128
威望值 : 0
注冊日期 : 2008-10-17
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章