AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
[分享]座標式標註 座標如果是負值 數字前自動加負號 Oooo-110 [分享]座標式標註 座標如果是負值 數字前自動加負號 Oo-2-110 [分享]座標式標註 座標如果是負值 數字前自動加負號 Ia15010 [分享]座標式標註 座標如果是負值 數字前自動加負號 Ziao1510 [分享]座標式標註 座標如果是負值 數字前自動加負號 BPl3tjj [分享]座標式標註 座標如果是負值 數字前自動加負號 Uos15010 [分享]座標式標註 座標如果是負值 數字前自動加負號 Uos15011

[分享]座標式標註 座標如果是負值 數字前自動加負號

向下

[分享]座標式標註 座標如果是負值 數字前自動加負號 Empty [分享]座標式標註 座標如果是負值 數字前自動加負號

發表 由 djh1006 于 2014-10-08, 14:01

這是manson666於2011.09.11發問的題目
[討論]請問座標式標註 座標如果是負值 請問要怎麼顯示呢?(詳圖)
以下的程式是我的原創,歡迎更改,若能修改缺點並加以回饋更好
座標式負向加負號是AUTOCAD的不體貼之一,明明ID可以確認座標值是正或是負,但在標註時卻不能顯示出來。
代碼:
;DX.lsp
;X軸座標_負號
;載入後輸入DX執行

(defun C:DX(/ LL OSP OCT XY CL PT1 TIMES DIMXY N1 NN1 P1 P2 PTN PTN1)
  (graphscr)
  (setvar "CMDECHO" 0)

;===新增圖層DIM===
  (command "-LAYER" "P" "N" "0" "")  ;將圖層0設為不出圖
  (setq LAY_CURRENT (getvar "CLAYER"))  ;取得目前圖層名稱
  (command "-LAYER" "ON" LAY_CURRENT "T" LAY_CURRENT "U" LAY_CURRENT "")  ;將目前圖層打開並解鎖,解凍
  (setq LL (tblsearch "LAYER" "DIM"))  ;偵測是否有DIM圖層<可設定成自己習慣圖層>
  (if (= LL nil)(command "-LAYER" "N" "DIM" ""))  ;若無DIM層則新建DIM圖層<可設定成自己習慣圖層>
  (command "-LAYER" "ON" "DIM" "T" "DIM" "U" "DIM" "C" "2" "DIM" "");打開DIM並解鎖,解凍<可設定成自己習慣圖層>
;===

  (setq
    OSP (getvar "OSMODE")
    OCT (getvar "CTAB")  ;確認目前在模型空間或配置空間
    OCV (getvar "CVPORT")  ;當在模型空間時,值為2,在配置空間的圖紙空間時,值為1,在配置空間的視埠裡時,值為2
    PT1 nil PT2 nil XY XY_record CL 1 TIMES 1
  )
  (if (= XY_record nil) (setq XY 1)(setq XY XY_record))

  (while (= CL 1)
  (while (= PT1 nil)
    (if (= XY 1)(progn
      (initget "U u")
      (setq PT1 (getpoint "\n▍▍▍▍▍X軸標註點[Y軸標註(ENTER)  復原(U)  結束(ESC)]:"))
      (if (or (= PT1 "U")(= PT1 "u")) (command "undo" "1"))
      (while (or (= PT1 "U")(= PT1 "u"))
        (initget "U u")
        (setq PT1 (getpoint "\n▍▍▍▍▍X軸標註點[Y軸標註(ENTER)  復原(U)  結束(ESC)]:"))
        (if (or (= PT1 "U")(= PT1 "u")) (command "undo" "1"))
      )
      (if (and (/= PT1 nil)(or (/= PT1 "u")(/= PT1 "U")))(progn
          (setq XY_record XY DIMXY "X" N1 (car PT1) TIMES 1)
      ))
        (if (= PT1 nil)(progn
            (setq XY 2 TIMES (1+ TIMES))
            (if (= TIMES 5) (exit))
        ))
      ))  ;end if
      (if (= XY 2)(progn
          (initget "U u")
          (setq PT1 (getpoint "\n▄▄▄▄▄Y軸標註點[X軸標註(ENTER)  復原(U)  結束(ESC)]:"))
          (if (or (= PT1 "U")(= PT1 "u")) (command "undo" "1"))
          (while (or (= PT1 "U")(= PT1 "u"))
           (initget "U u")
            (setq PT1 (getpoint "\n▄▄▄▄▄Y軸標註點[X軸標註(ENTER)  復原(U)  結束(ESC)]:"))
            (if (or (= PT1 "U")(= PT1 "u")) (command "undo" "1"))
          )
          (if (and (/= PT1 nil)(or (/= PT1 "u")(/= PT1 "U")))(progn
              (setq XY_record XY DIMXY "Y" N1 (cadr PT1) TIMES 1)
          ))  ;end if
          (if (= PT1 nil)(progn
              (setq XY 1 TIMES (1+ TIMES))
              (if (= TIMES 5) (exit))
          )) ;end if
      ))  ;end if
    )
    (while (and (/= PT1 nil)(or (/= PT1 "u")(/= PT1 "U")))
      (command "UNDO" "BE")
      (cond
        ((< N1 0)   (setq NN1 "-<>"))
        ((>= N1 0)   (setq NN1 ""))
      )
      (command "DIMORDINATE" PT1 DIMXY "T" NN1 pause)
      (setvar "OSMODE" 0)
      (if (= OCT "Model")(progn
        (setq P1 (polar PT1 (/ (* 135 PI) 180) 10))
        (setq P2 (polar PT1 (/ (* 315 PI) 180) 10))
        (command "ZOOM" P1 P2)
      ))
      (setq PTN (ssget PT1))
      (if (/= PTN nil)(progn
          (setq PTN1 (cdr (assoc 0 (entget (ssname PTN 0)))))
          (if (= PTN1 "DIMENSION")
            (command "CHANGE" PT1 "" "P" "LA" "DIM" "C" "BYLAYER" "LT" " BYLAYER" "")
          )
      ))
      (if (= OCT "Model")(command "ZOOM" "P"))
      (setvar "OSMODE" OSP)
      (setq PT1 nil)
      (command "UNDO" "E")
    )  ;end while
  )  ;end while
  (princ)
)
唯一的缺點是標註出來的尺寸與物件沒有關聯,無法隨著物件移動而自動更改尺寸值,請各位高手幫忙修改


Tiger&蘋果爸 寫到:讚啦!! 謝謝熱心程式分享~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
附件
[分享]座標式標註 座標如果是負值 數字前自動加負號 Attachment
DX.zip 您無權下載這里的附件。(2 Kb) 下載 85 次
djh1006
djh1006
中級會員
中級會員

文章總數 : 167
年齡 : 48
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 20年以上
使用版本 : 2014
積分 : 7
經驗值 : 4168
威望值 : 320
注冊日期 : 2011-06-16
男 獅子座 豬

回頂端 向下

[分享]座標式標註 座標如果是負值 數字前自動加負號 Empty 回復: [分享]座標式標註 座標如果是負值 數字前自動加負號

發表 由 edwei206 于 2014-10-08, 22:49

雖然工作上用不到,
但是太~~~~厲害了!!!!!
edwei206
edwei206
初級會員
初級會員

文章總數 : 76
年齡 : 40
來自 : 台中
職業 : 開發
愛好 : 上網、攝影、玩模型、打電動
個性 : 內向溫和好相處
使用年資 : 10年 ↑
使用版本 : AutoCAD 2012
積分 : 3
經驗值 : 3081
威望值 : 138
注冊日期 : 2012-06-21
經典問與答讀者 藍鵲459號
男 摩羯座 馬

回頂端 向下

[分享]座標式標註 座標如果是負值 數字前自動加負號 Empty 回復: [分享]座標式標註 座標如果是負值 數字前自動加負號

發表 由 qaz6605 于 2014-10-09, 08:24

謝謝提供,解釋很清楚,對標注是個方便的方式.
avatar
qaz6605
初級會員
初級會員

文章總數 : 185
年齡 : 40
來自 : 台南市
職業 : 繪圖員
愛好 : 有關電腦的
個性 : 外向
使用年資 : 剛剛初道
使用版本 : 2006
積分 : 2
經驗值 : 4673
威望值 : 82
注冊日期 : 2008-12-31
經典問與答讀者 藍鵲285號
男 處女座 馬

回頂端 向下

[分享]座標式標註 座標如果是負值 數字前自動加負號 Empty 回復: [分享]座標式標註 座標如果是負值 數字前自動加負號

發表 由 jenniferaptg 于 2014-10-24, 01:27

感謝各位前輩的分享 讓大家受益良多
avatar
jenniferaptg
初級會員
初級會員

文章總數 : 121
年齡 : 45
來自 : taiwan
職業 : cafe
愛好 : 電腦
個性 : 平易近人
使用年資 : 15
使用版本 : 用最熟的那一版
經驗值 : 4397
威望值 : 30
注冊日期 : 2009-01-30
藍鵲136號
女 雙子座 虎

回頂端 向下

[分享]座標式標註 座標如果是負值 數字前自動加負號 Empty 回復: [分享]座標式標註 座標如果是負值 數字前自動加負號

發表 由 junbafa74 于 2014-12-03, 17:03

LISP太複雜,希望你能找到解答,感謝分享~
junbafa74
junbafa74
初級會員
初級會員

文章總數 : 80
年齡 : 45
來自 : 台中
職業 : 施工圖繪圖員
愛好 : 跑步運動
個性 : 開朗
使用年資 : 約3年
使用版本 : 2014
積分 : 2
經驗值 : 2417
威望值 : 78
注冊日期 : 2014-02-26
男 金牛座 虎

回頂端 向下

[分享]座標式標註 座標如果是負值 數字前自動加負號 Empty 回復: [分享]座標式標註 座標如果是負值 數字前自動加負號

發表 由 lcskc 于 2014-12-03, 20:32

感謝分享,有空試用測試看看
lcskc
lcskc
一般會員
一般會員

文章總數 : 58
年齡 : 46
來自 : 高雄
職業 : 模具
愛好 : pc相關
個性 : 安靜
使用年資 : 10
使用版本 : R12
經驗值 : 2250
威望值 : 31
注冊日期 : 2014-05-02
男 處女座 鼠

回頂端 向下

[分享]座標式標註 座標如果是負值 數字前自動加負號 Empty 回復: [分享]座標式標註 座標如果是負值 數字前自動加負號

發表 由 crihy 于 2016-01-07, 16:49

多謝大大提供分享,祝大家新年快樂
avatar
crihy
初級會員
初級會員

文章總數 : 163
年齡 : 42
來自 : earth worth
職業 : 建築、結構、土木、水利、水保
愛好 : 學習專業知識
個性 : 認真上進
使用年資 : 自80年起
使用版本 : 2014
積分 : 2
經驗值 : 5025
威望值 : 231
注冊日期 : 2008-05-13
藍鵲366號
男 處女座 龍

回頂端 向下

[分享]座標式標註 座標如果是負值 數字前自動加負號 Empty 回復: [分享]座標式標註 座標如果是負值 數字前自動加負號

發表 由 homebrown 于 2017-02-09, 17:15

當你有使用關連性標註時可以用拖拉指令圈選物件及尺寸標註,如此可變化尺寸標註值,但若超過原點範圍,意指原負座標拖拉到正座標數字會變,但正負值就不能附加,僅供參考

homebrown
homebrown
一般會員
一般會員

文章總數 : 9
年齡 : 47
來自 : 彰化
職業 : 機械相關
愛好 : 電腦
個性 : crazy
使用年資 : R9-2016
使用版本 : 2016
經驗值 : 1133
威望值 : 0
注冊日期 : 2016-08-23
男 巨蟹座 鼠

回頂端 向下

[分享]座標式標註 座標如果是負值 數字前自動加負號 Empty 回復: [分享]座標式標註 座標如果是負值 數字前自動加負號

發表 由 黃文正 于 2018-05-02, 21:13

感謝蘋果爸的分享...太厲害了
黃文正
黃文正
一般會員
一般會員

文章總數 : 10
年齡 : 40
來自 : 新北市
職業 : 模具加工
愛好 : 看書
個性 : 開朗
使用年資 : 1
使用版本 : 2015
經驗值 : 539
威望值 : 12
注冊日期 : 2018-04-27
藍鵲731號
男 天蝎座 馬

回頂端 向下

[分享]座標式標註 座標如果是負值 數字前自動加負號 Empty 回復: [分享]座標式標註 座標如果是負值 數字前自動加負號

發表 由 Tiger&蘋果爸 于 2018-05-03, 09:36

黃文正 寫到:感謝蘋果爸的分享...太厲害了
要謝謝的人不是我!
這程式是樓主 djh1006 寫的喔!
可愛

____________________________________________________________________________________
[分享]座標式標註 座標如果是負值 數字前自動加負號 Oo-2-110 [分享]座標式標註 座標如果是負值 數字前自動加負號 Ia15010 [分享]座標式標註 座標如果是負值 數字前自動加負號 Ziao1510 [分享]座標式標註 座標如果是負值 數字前自動加負號 BPl3tjj
Tiger&蘋果爸
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 18574
年齡 : 43
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 72005
威望值 : 13727
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 https://i.servimg.com/u/f11/19/71/67/71/2d3d10.png2D+3D線上 顧問外掛程式 經典問與答讀者 藍鵲1號
2009聚會勳章 2010聚會勳章 2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 2015聚會勳章 2016聚會勳章 串連貼紙成功 男 水瓶座 兔

http://mypaper.pchome.com.tw/kv1012tiger

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[分享]座標式標註 座標如果是負值 數字前自動加負號 Uos15011 [分享]座標式標註 座標如果是負值 數字前自動加負號 Uos15010 [分享]座標式標註 座標如果是負值 數字前自動加負號 BPl3tjj [分享]座標式標註 座標如果是負值 數字前自動加負號 Ziao1510 [分享]座標式標註 座標如果是負值 數字前自動加負號 Ia15010 [分享]座標式標註 座標如果是負值 數字前自動加負號 Oo-2-110 [分享]座標式標註 座標如果是負值 數字前自動加負號 Oooo-110