AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
[發問]如何取得矩形4個點座標 LISP部分  Io15010 [發問]如何取得矩形4個點座標 LISP部分  2020-310 [發問]如何取得矩形4個點座標 LISP部分  Oiu15010 [發問]如何取得矩形4個點座標 LISP部分  2020-211 [發問]如何取得矩形4個點座標 LISP部分  Oo-2-110 [發問]如何取得矩形4個點座標 LISP部分  BPl3tjj

[發問]如何取得矩形4個點座標 LISP部分

向下

[發問]如何取得矩形4個點座標 LISP部分  Empty [發問]如何取得矩形4個點座標 LISP部分

發表 由 as920029as 于 2020-03-13, 14:39

假如我原先已經在 起點 1000,2000 地方畫了一個X300Y200的矩形
(setq en (entsel "選取"))
(setq en_data (entget (car en)))
我用以上去點取方形 讀取串列出來
但是
((-1 . <圖元名稱: 7ff409805e40>) (0 . "LWPOLYLINE") (5 . "81139DC") (102 . "{ACAD_REACTORS") (330 . <圖元名稱: 7ff409809340>) (102 . "}") (330 . <圖元名稱: 7ff4098609f0>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "加大實做尺寸") (100 . "AcDbPolyline") (90 . 4) (70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 1000.0 2000.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 1300.0 2000.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 1300.0 2200.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 1000.0 2200.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0 1.0))
我想取得方形4個點的座標 但是全部都是10
(setq en_txt (cdr (assoc 10 en_data)))
讀取出來也只能讀取 起點 請問如何取得四個點的座標
想寫一個點取矩形 然後會讀取到他矩形4個點座標 然後之後再寫自己要改寫的程式

煩請大大幫忙解答
as920029as
as920029as
一般會員
一般會員

文章總數 : 83
年齡 : 29
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 3628
威望值 : 38
注冊日期 : 2012-05-06
男 白羊座 羊

回頂端 向下

[發問]如何取得矩形4個點座標 LISP部分  Empty 回復: [發問]如何取得矩形4個點座標 LISP部分

發表 由 djh1006 于 2020-03-17, 18:19

有點小複雜,希望能幫到你
代碼:

    (setq S1 (entsel "\n選取圓(弧)、長方形<單選>:"))
    (setq
      S1_data (entget (car S1))
      N1 (assoc 0 S1_data);;取得圖元名稱欄位
      N1_data (cdr N1);;辯識圖元名稱性質
    )
    (if (= N1_data "LWPOLYLINE")  ;;若為矩形;;if1
      (progn ;;progn1
        (setq
          NN (length S1_data)
          PP_LST '()
          J 0
          NUM1 0
        )
        (repeat NN
          (setq
            PP (nth J S1_data)
            PTYP (car PP)
          )
          (if (= PTYP 10);;if2
           (progn  ;;progn2
              (setq
                PP_LST (cons (cdr PP) PP_LST)
                NUM1 (+ NUM1 1)
              )
            )  ;;end progn2
          )  ;;end if2
          (setq J (1+ J))
        )  ;end repeat
        (if (= NUM1 4)  ;;if3
          (progn  ;;progn3
            (setq
              PP_LST (reverse PP_LST)
              PT1 (nth 0 PP_LST)
              PT2 (nth 1 PP_LST)
              PT3 (nth 2 PP_LST)
              PT4 (nth 3 PP_LST)
            )
          )  ;;end progn3
        )  ;;end if3
        (if (/= NUM1 4) (princ "此圖形不是長方形!"))
      )  ;;end progn1
    )  ;;end if
djh1006
djh1006
中級會員
中級會員

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

回頂端 向下

[發問]如何取得矩形4個點座標 LISP部分  Empty 回復: [發問]如何取得矩形4個點座標 LISP部分

發表 由 as920029as 于 2020-03-17, 18:51

感謝大大 最近工作有點忙 有空我在研究一下
as920029as
as920029as
一般會員
一般會員

文章總數 : 83
年齡 : 29
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 3628
威望值 : 38
注冊日期 : 2012-05-06
男 白羊座 羊

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[發問]如何取得矩形4個點座標 LISP部分  Uos15010 [發問]如何取得矩形4個點座標 LISP部分  BPl3tjj [發問]如何取得矩形4個點座標 LISP部分  Ziao1510 [發問]如何取得矩形4個點座標 LISP部分  Oo-2-110 [發問]如何取得矩形4個點座標 LISP部分  Oooo-110 [發問]如何取得矩形4個點座標 LISP部分  2020-211