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.
[討論]載入座標檔自動標示點號 Aoe1-113[討論]載入座標檔自動標示點號 Ioaoe110[討論]載入座標檔自動標示點號 2020-310[討論]載入座標檔自動標示點號 Oiu15010[討論]載入座標檔自動標示點號 2020-211[討論]載入座標檔自動標示點號 Ia15010[討論]載入座標檔自動標示點號 Aizyao10[討論]載入座標檔自動標示點號 Uos15010[討論]載入座標檔自動標示點號 BPl3tjj[討論]載入座標檔自動標示點號 Ziao1510
[討論]載入座標檔自動標示點號 Aoe15010[討論]載入座標檔自動標示點號 Oo-2-110[討論]載入座標檔自動標示點號 Zuoiy_10[討論]載入座標檔自動標示點號 Aizyao11[討論]載入座標檔自動標示點號 Iyb_1510[討論]載入座標檔自動標示點號 Aoe1-112[討論]載入座標檔自動標示點號 Uos15011[討論]載入座標檔自動標示點號 Aoe2da10[討論]載入座標檔自動標示點號 Aoe2da11[討論]載入座標檔自動標示點號 Aoe10

[討論]載入座標檔自動標示點號

+3
ginse0727
lsj
aaronekin
7 posters

向下

[討論]載入座標檔自動標示點號 Empty [討論]載入座標檔自動標示點號

發表 由 aaronekin 2010-08-21, 16:57

我有一個程式可將名為blk的圖塊匯入圖面
程式如下:

(defun c:inblock()
(setvar "cmdecho" 0)
(setvar "pdmode" 34)
(setq ffn (getfiled "選取檔案" "" "txt" 2));;;讀取*.txt
(setq ff (open ffn "r"))
(setq data (read-line ff))
(while data
(setq p "" pp "" ppp '() i 1)
(setq nn (strlen data))
(repeat nn
(setq p (substr data i 1))
(if (/= p " ")
(setq pp (strcat pp p))
(setq ppp (cons pp ppp) pp "")
)
(setq i (1+ i))
)
(setq ppp (cons pp ppp))
(setq ppp (reverse ppp))
(draw_pt)
(setq data (read-line ff))
)
(close ff)
)

(defun draw_pt (/ dwgname pt)
(if
(setq dwgname "blk");;;此處可更改圖塊名稱
(progn
(setq x (atof (car ppp)))
(setq y (atof (cadr ppp)))
(setq z (atof (caddr ppp)))
(setq pt (list x y z))
(command "_insert" dwgname pt "" "" "" "")
) ; progn
(alert "\nThere is not object block")
) ; if
(princ)
)
(princ "\n----------<<輸入[inblock]執行程式>>------------")
(prin1)

現在問題來了
每個點都有編號
格式如:
點號 N E Z
P171 2751313.696 252017.516 85.003
P164 2751309.289 252034.434 88.020
P162 2751308.083 252038.977 81.030
P160 2751306.846 252043.469 81.033
P158 2751305.398 252047.974 82.995
我想做一個屬性圖塊
在匯入時同時將點號一起寫上
請問程式要如何修改?


Tiger&蘋果爸 在 2010-10-13, 09:41 作了第 1 次修改 (原因 : 此主題改為討論類型)
aaronekin
aaronekin
中級會員
中級會員

文章總數 : 150
年齡 : 45
來自 : 台中市
職業 : 土木工程
愛好 : 電影
個性 : 開朗
使用年資 : 12 years
使用版本 : 2008~2015
積分 : 6
經驗值 : 6068
威望值 : 41
注冊日期 : 2008-10-16
男 水瓶座 羊

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 lsj 2010-08-23, 16:06

1. 請先CHECK程式中PPP的結果,例如最後一組為
("P158" "2751305.398" "252047.974" "82.995" "")
你的XYZ座標要改為(cadr ppp) (caddr ppp) (cadddr ppp)
或用(nth 1 ppp) (nth 2 ppp) (nth 3 ppp) ->atof ->list
2. (car ppp)應為點號
3. (command "_insert" dwgname pt "" "" "" (car ppp))
lsj
lsj
初級會員
初級會員

文章總數 : 43
年齡 : 59
來自 : 桃園
職業 : 營建工程
愛好 :
個性 :
使用年資 : 10↑
使用版本 : 2008
積分 : 2
經驗值 : 5505
威望值 : 110
注冊日期 : 2010-06-28
男 水瓶座 龍

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 aaronekin 2010-08-30, 16:29

lsj 寫到:1. 請先CHECK程式中PPP的結果,例如最後一組為
("P158" "2751305.398" "252047.974" "82.995" "")
你的XYZ座標要改為(cadr ppp) (caddr ppp) (cadddr ppp)
或用(nth 1 ppp) (nth 2 ppp) (nth 3 ppp) ->atof ->list
2. (car ppp)應為點號
3. (command "_insert" dwgname pt "" "" "" (car ppp))

我的lisp非常弱,請問是不是改成這樣子
(defun draw_pt (/ dwgname pt)
(if
(setq dwgname "blk");;;此處可更改圖塊名稱
(progn
(setq p (atof (car ppp)))
(setq x (atof (cadr ppp)))
(setq y (atof (caddr ppp)))
(setq z (atof (cadddr ppp)))
(setq pt (list x y z))
(command "_insert" dwgname pt "" "" "" (car ppp))
) ; progn
(alert "\nThere is not object block")
) ; if
(princ)
)
或是麻煩直接點出要修改的地方
感謝唷~~~

ps:其實我還有想到根據這個延伸出的一些問題,只是不好意思一次問太多..cc...
aaronekin
aaronekin
中級會員
中級會員

文章總數 : 150
年齡 : 45
來自 : 台中市
職業 : 土木工程
愛好 : 電影
個性 : 開朗
使用年資 : 12 years
使用版本 : 2008~2015
積分 : 6
經驗值 : 6068
威望值 : 41
注冊日期 : 2008-10-16
男 水瓶座 羊

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 lsj 2010-08-30, 17:11

(defun c:inblock()
(setvar "cmdecho" 0)
(setvar "pdmode" 34)
(setq ffn (getfiled "選取檔案" "" "txt" 2));;;讀取*.txt
(setq ff (open ffn "r"))
(setq data (read-line ff))
(while data
(setq p "" pp "" ppp '() i 1)
(setq nn (strlen data))
(repeat nn
(setq p (substr data i 1))
(if (/= p " ")
(setq pp (strcat pp p))
(setq ppp (cons pp ppp) pp "")
)
(setq i (1+ i))
)
(setq ppp (cons pp ppp))
(setq ppp (reverse ppp))
(draw_pt)
(setq data (read-line ff))
)
(close ff)
(princ)
)

(defun draw_pt (/ dwgname pt)
(setq x (atof (cadr ppp)))
(setq y (atof (caddr ppp)))
(setq z (atof (cadddr ppp)))
(setq pt (list x y z))
(command "_insert" "xxx" pt "" "" "" (car ppp)) ;;直接明確輸入屬性圖塊名xxx
(princ)
)
lsj
lsj
初級會員
初級會員

文章總數 : 43
年齡 : 59
來自 : 桃園
職業 : 營建工程
愛好 :
個性 :
使用年資 : 10↑
使用版本 : 2008
積分 : 2
經驗值 : 5505
威望值 : 110
注冊日期 : 2010-06-28
男 水瓶座 龍

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 aaronekin 2010-08-31, 09:09

測試了一下
可是不能用
不知是那邊有問題?
aaronekin
aaronekin
中級會員
中級會員

文章總數 : 150
年齡 : 45
來自 : 台中市
職業 : 土木工程
愛好 : 電影
個性 : 開朗
使用年資 : 12 years
使用版本 : 2008~2015
積分 : 6
經驗值 : 6068
威望值 : 41
注冊日期 : 2008-10-16
男 水瓶座 羊

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 lsj 2010-08-31, 10:57

屬性塊做了沒,記得在支援路徑下
lsj
lsj
初級會員
初級會員

文章總數 : 43
年齡 : 59
來自 : 桃園
職業 : 營建工程
愛好 :
個性 :
使用年資 : 10↑
使用版本 : 2008
積分 : 2
經驗值 : 5505
威望值 : 110
注冊日期 : 2010-06-28
男 水瓶座 龍

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 ginse0727 2010-09-01, 07:39

aaronekin,
你要有一個屬性圖塊,標籤裡需有名稱,有x值,y值,z值,等標籤(因配合現有程式)
插入屬性圖塊時,給插入點,給比例值等完後,接著輸入點名稱後,還要接著先前取得的x值,y值,z值.

你的這行,(defun draw_pt (/ dwgname pt),這種變數的用法,我比較少用,所以先幫你拿掉了,改成下式後,執行上應該ok.

代碼:
(defun draw_pt()
  (setq x (atof(cadr ppp)))
  (setq y (atof(caddr ppp)))
  (setq z (atof(cadddr ppp)))
  (setq pt (list x y z))
  (command "-insert" "xxx" pt "" "" "" (car ppp) x y z) ;;直接明確輸入屬性圖塊名xxx
  (princ)
  )

不好意思,我現在還不曉得怎麼把我試做的含屬性圖塊的圖檔上傳供你測試,不過你可以自己做一個屬性圖塊來測試看看. 嘻嘻

提供測試完的結果圖片,左下角為屬性圖塊的插入點,座標值可能還要再處理一下.
[討論]載入座標檔自動標示點號 Lsptest.th
ginse0727
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6828
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 ahorng 2010-09-06, 21:36

屬性圖塊要在程式中使用,就是要先作好屬性圖塊,後使用「-insert」指令來執行一下,這樣你就知道輸入時的順序,了解順序後再下程式碼「(command "-insert" "xxx" pt "" "" "" (car ppp) x y z)」,即可;

還有我來說明一下「(defun draw_pt (/ dwgname pt)」的意思「(/ dwgname pt)」這個表示dwgname及pt變數在程式結束時即為nil
ahorng
ahorng
初級會員
初級會員

文章總數 : 37
年齡 : 54
來自 : 台中
職業 : 服務
愛好 : 腳踏車
個性 : 內向
使用年資 : 10
使用版本 : 2010
積分 : 1
經驗值 : 5453
威望值 : 27
注冊日期 : 2010-07-19
男 射手座 雞

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 aaronekin 2010-09-07, 17:54





還是不知道問題在哪?
提供dwg檔(含圖塊xxx)及座標檔供測試
aaronekin
aaronekin
中級會員
中級會員

文章總數 : 150
年齡 : 45
來自 : 台中市
職業 : 土木工程
愛好 : 電影
個性 : 開朗
使用年資 : 12 years
使用版本 : 2008~2015
積分 : 6
經驗值 : 6068
威望值 : 41
注冊日期 : 2008-10-16
男 水瓶座 羊

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 ginse0727 2010-09-07, 18:18

你的文字檔不應該用逗號分隔還記得你上述問題時,是以空隔分隔你的資料值,程式也是這麼設定的,
格式如:
點號 N E Z
P171 2751313.696 252017.516 85.003
P164 2751309.289 252034.434 88.020
P162 2751308.083 252038.977 81.030
P160 2751306.846 252043.469 81.033
P158 2751305.398 252047.974 82.995

最快的解決方法是把你的DS.csv.txt檔案中的,號以空隔取代,這樣程式就能執行了,再不然就是

把if條件式的這行(/= p " ")
,改成(/= p ",")
你再自己考慮要用那一種吧.
ginse0727
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6828
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 leoneriol 2010-09-07, 18:30

插入圖塊之前先設定
attdia為0再試試看!!!
語法
(SETVAR "ATTDIA" 0)

____________________________________________________________________________________
丑角之日
堅持~!才會有價值~!
讚啦!!
[討論]載入座標檔自動標示點號 Ioaoe110 [討論]載入座標檔自動標示點號 Zuoiy_10 [討論]載入座標檔自動標示點號 2020-211 [討論]載入座標檔自動標示點號 Aizyao11 [討論]載入座標檔自動標示點號 Iyb_1510
[討論]載入座標檔自動標示點號 Aizyao10 [討論]載入座標檔自動標示點號 BPl3tjj.png [討論]載入座標檔自動標示點號 Ziao1510 [討論]載入座標檔自動標示點號 Oo-2-110 [討論]載入座標檔自動標示點號 Oooa_110
leoneriol
leoneriol
榮譽顧問
榮譽顧問

文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9199
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
經典問與答讀者 藍鵲34號
2009聚會勳章 2014聚會勳章 男 雙魚座 鼠

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 aaronekin 2010-09-14, 16:40

ginse0727 寫到:你的文字檔不應該用逗號分隔還記得你上述問題時,是以空隔分隔你的資料值,程式也是這麼設定的,
最快的解決方法是把你的DS.csv.txt檔案中的,號以空隔取代,這樣程式就能執行了,再不然就是

把if條件式的這行(/= p " ")
,改成(/= p ",")
你再自己考慮要用那一種吧.

收到
可是插入圖塊時,卻要我一個一個輸入屬性值
怎麼會這樣?
aaronekin
aaronekin
中級會員
中級會員

文章總數 : 150
年齡 : 45
來自 : 台中市
職業 : 土木工程
愛好 : 電影
個性 : 開朗
使用年資 : 12 years
使用版本 : 2008~2015
積分 : 6
經驗值 : 6068
威望值 : 41
注冊日期 : 2008-10-16
男 水瓶座 羊

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 ginse0727 2010-09-14, 17:39

你會不會用到了那一個輸入屬性圖塊後,沒給X,Y,Z值的那一個程式啊.
(command "-insert" "xxx" pt "" "" "" (car ppp) x y z) ;;
就是上面這行程式,但少了X Y Z,
我是用你底下這個程式測試的,測試結果OK.
我貼上來,你再試看看,有問題再討論.
代碼:
(defun c:inblock()
  (setvar "cmdecho" 0)
  (setvar "pdmode" 34)
  (setq ffn (getfiled "選取檔案"  "" "txt" 2));;;讀取*.txt
  (setq ff (open ffn "r"))
  (setq data (read-line ff))
  (while data
      (setq p "" pp "" ppp '() i 1)
      (setq nn (strlen data))
      (repeat nn
        (setq p (substr data i 1))
        (if (/= p " ")
            (setq pp (strcat pp p))
            (setq ppp (cons pp ppp) pp "")
        )
        (setq i (1+ i))
      )
      (setq ppp (cons pp ppp))
      (setq ppp (reverse ppp))
      (draw_pt)
      (setq data (read-line ff))
  )
  (close ff)
)

(defun draw_pt()
  (setq x (atof(cadr ppp)))
  (setq y (atof(caddr ppp)))
  (setq z (atof(cadddr ppp)))
  (setq pt (list x y z))
  (command "-insert" "xxx" pt "" "" "" (car ppp) x y z) ;;直接明確輸入屬性圖塊名xxx
  (princ)
  )

(princ "\n----------<<輸入[inblock]執行程式>>------------")
(prin1)
ginse0727
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6828
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 aaronekin 2010-09-21, 10:38

ginse0727 寫到:你會不會用到了那一個輸入屬性圖塊後,沒給X,Y,Z值的那一個程式啊.
(command "-insert" "xxx" pt "" "" "" (car ppp) x y z) ;;
就是上面這行程式,但少了X Y Z,
我是用你底下這個程式測試的,測試結果OK.
我貼上來,你再試看看,有問題再討論.
代碼:
(defun c:inblock()
  (setvar "cmdecho" 0)
  (setvar "pdmode" 34)
  (setq ffn (getfiled "選取檔案"  "" "txt" 2));;;讀取*.txt
  (setq ff (open ffn "r"))
  (setq data (read-line ff))
  (while data
      (setq p "" pp "" ppp '() i 1)
      (setq nn (strlen data))
      (repeat nn
        (setq p (substr data i 1))
        (if (/= p " ")
            (setq pp (strcat pp p))
            (setq ppp (cons pp ppp) pp "")
        )
        (setq i (1+ i))
      )
      (setq ppp (cons pp ppp))
      (setq ppp (reverse ppp))
      (draw_pt)
      (setq data (read-line ff))
  )
  (close ff)
)

(defun draw_pt()
  (setq x (atof(cadr ppp)))
  (setq y (atof(caddr ppp)))
  (setq z (atof(cadddr ppp)))
  (setq pt (list x y z))
  (command "-insert" "xxx" pt "" "" "" (car ppp) x y z) ;;直接明確輸入屬性圖塊名xxx
  (princ)
  )

(princ "\n----------<<輸入[inblock]執行程式>>------------")
(prin1)

還是不行
插入圖塊時,也是要一個一個輸入屬性值
而且插入的座標值也不對
原本的程式搭配一般的圖塊都沒問題
怎會換成屬性圖塊就這麼難搞
aaronekin
aaronekin
中級會員
中級會員

文章總數 : 150
年齡 : 45
來自 : 台中市
職業 : 土木工程
愛好 : 電影
個性 : 開朗
使用年資 : 12 years
使用版本 : 2008~2015
積分 : 6
經驗值 : 6068
威望值 : 41
注冊日期 : 2008-10-16
男 水瓶座 羊

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 ginse0727 2010-09-24, 12:50

真不好意思,我也不曉得你的問題在哪裡耶,因為我都是用你提供的檔案,還有上述的程式,測試出來是沒問題的.也沒有出現像你所說的,還要再一個一個的輸入屬性值,沒能幫上你的忙真抱歉,也勞駕其他的前輩高手們,撥個空測試一下看看問題到底出在哪裡?? 疑問
ginse0727
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6828
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 leoneriol 2010-10-01, 16:05

有試過系統變數ATTREQ設為0嗎?

0 設定所有屬性質使用預設值
1 依Attdia之選取,以提示或對話框方式設屬性質

____________________________________________________________________________________
丑角之日
堅持~!才會有價值~!
讚啦!!
[討論]載入座標檔自動標示點號 Ioaoe110 [討論]載入座標檔自動標示點號 Zuoiy_10 [討論]載入座標檔自動標示點號 2020-211 [討論]載入座標檔自動標示點號 Aizyao11 [討論]載入座標檔自動標示點號 Iyb_1510
[討論]載入座標檔自動標示點號 Aizyao10 [討論]載入座標檔自動標示點號 BPl3tjj.png [討論]載入座標檔自動標示點號 Ziao1510 [討論]載入座標檔自動標示點號 Oo-2-110 [討論]載入座標檔自動標示點號 Oooa_110
leoneriol
leoneriol
榮譽顧問
榮譽顧問

文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9199
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
經典問與答讀者 藍鵲34號
2009聚會勳章 2014聚會勳章 男 雙魚座 鼠

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 aaronekin 2010-10-04, 10:08

還是不行
執行後出現[不明的指令「P001」。請按 F1 取得說明。]
程式似乎把座標檔裡第一個點號當成指令
把座標檔裡的點號去掉試試
就變成把第一個座標值當成指令
aaronekin
aaronekin
中級會員
中級會員

文章總數 : 150
年齡 : 45
來自 : 台中市
職業 : 土木工程
愛好 : 電影
個性 : 開朗
使用年資 : 12 years
使用版本 : 2008~2015
積分 : 6
經驗值 : 6068
威望值 : 41
注冊日期 : 2008-10-16
男 水瓶座 羊

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 阿希 2010-10-04, 10:33

aaronekin 寫到:我有一個程式可將名為blk的圖塊匯入圖面
程式如下:

(defun c:inblock()
(setvar "cmdecho" 0)
(setvar "pdmode" 34)
(setq ffn (getfiled "選取檔案" "" "txt" 2));;;讀取*.txt
(setq ff (open ffn "r"))
(setq data (read-line ff))
(while data
(setq p "" pp "" ppp '() i 1)
(setq nn (strlen data))
(repeat nn
(setq p (substr data i 1))
(if (/= p " ")
(setq pp (strcat pp p))
(setq ppp (cons pp ppp) pp "")
)
(setq i (1+ i))
)
(setq ppp (cons pp ppp))
(setq ppp (reverse ppp))
(draw_pt)
(setq data (read-line ff))
)
(close ff)
)

(defun draw_pt (/ dwgname pt)
(if
(setq dwgname "blk");;;此處可更改圖塊名稱
(progn
(setq x (atof (car ppp)))
(setq y (atof (cadr ppp)))
(setq z (atof (caddr ppp)))
(setq pt (list x y z))
(command "_insert" dwgname pt "" "" "" "")
) ; progn
(alert "\nThere is not object block")
) ; if
(princ)
)
(princ "\n----------<<輸入[inblock]執行程式>>------------")
(prin1)

現在問題來了
每個點都有編號
格式如:
點號 N E Z
P171 2751313.696 252017.516 85.003
P164 2751309.289 252034.434 88.020
P162 2751308.083 252038.977 81.030
P160 2751306.846 252043.469 81.033
P158 2751305.398 252047.974 82.995
我想做一個屬性圖塊
在匯入時同時將點號一起寫上
請問程式要如何修改?



上傳你做的屬性圖塊來試試
avatar
阿希
高級會員
高級會員

文章總數 : 348
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6824
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
男 摩羯座 猴

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 aaronekin 2010-10-06, 10:56

aaronekin 寫到:



還是不知道問題在哪?
提供dwg檔(含圖塊xxx)及座標檔供測試

在這裡
aaronekin
aaronekin
中級會員
中級會員

文章總數 : 150
年齡 : 45
來自 : 台中市
職業 : 土木工程
愛好 : 電影
個性 : 開朗
使用年資 : 12 years
使用版本 : 2008~2015
積分 : 6
經驗值 : 6068
威望值 : 41
注冊日期 : 2008-10-16
男 水瓶座 羊

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 阿希 2010-10-06, 15:50

aaronekin 寫到:我有一個程式可將名為blk的圖塊匯入圖面
程式如下:

(defun c:inblock()
(setvar "cmdecho" 0)
(setvar "pdmode" 34)
(setq ffn (getfiled "選取檔案" "" "txt" 2));;;讀取*.txt
(setq ff (open ffn "r"))
(setq data (read-line ff))
(while data
(setq p "" pp "" ppp '() i 1)
(setq nn (strlen data))
(repeat nn
(setq p (substr data i 1))
(if (/= p " ")
(setq pp (strcat pp p))
(setq ppp (cons pp ppp) pp "")
)
(setq i (1+ i))
)
(setq ppp (cons pp ppp))
(setq ppp (reverse ppp))
(draw_pt)
(setq data (read-line ff))
)
(close ff)
)

(defun draw_pt (/ dwgname pt)
(if
(setq dwgname "blk");;;此處可更改圖塊名稱
(progn
(setq x (atof (car ppp)))
(setq y (atof (cadr ppp)))
(setq z (atof (caddr ppp)))
(setq pt (list x y z))
(command "_insert" dwgname pt "" "" "" "")
) ; progn
(alert "\nThere is not object block")
) ; if
(princ)
)
(princ "\n----------<<輸入[inblock]執行程式>>------------")
(prin1)

現在問題來了
每個點都有編號
格式如:
點號 N E Z
P171 2751313.696 252017.516 85.003
P164 2751309.289 252034.434 88.020
P162 2751308.083 252038.977 81.030
P160 2751306.846 252043.469 81.033
P158 2751305.398 252047.974 82.995
我想做一個屬性圖塊
在匯入時同時將點號一起寫上
請問程式要如何修改?

看程式這似乎是書上的範本 ~

(defun c:inblock()
(setvar "cmdecho" 0)
(setvar "pdmode" 34)
(setq ffn (getfiled "選取檔案" "" "txt" 2))
(setq ff (open ffn "r"))
(setq data (read-line ff))
(while data
(setq p "" pp "" ppp '() i 1)
(setq nn (strlen data))
(repeat nn
(setq p (substr data i 1))
(if (/= p ",")
(setq pp (strcat pp p))
(setq ppp (cons pp ppp) pp "")
)
(setq i (1+ i))
)
(setq ppp (cons pp ppp))
(setq ppp (reverse ppp))
(draw_pt)
(setq data (read-line ff))
)
(close ff)
(princ)
)

(defun draw_pt ()
(setq x (atof (cadr ppp)))
(setq y (atof (caddr ppp)))
(setq z (atof (cadddr ppp)))
(setq pt (list x y Z))
(command "_insert" "xxx" pt "" "" "" (car ppp)(cadr ppp)(caddr ppp)(cadddr ppp))
(princ)
)
avatar
阿希
高級會員
高級會員

文章總數 : 348
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6824
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
男 摩羯座 猴

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 aaronekin 2010-10-13, 09:16

可以繪出圖塊了
不過點號及座標值還是沒有自動寫上
是不是屬性圖塊不對
還是有其他原因
aaronekin
aaronekin
中級會員
中級會員

文章總數 : 150
年齡 : 45
來自 : 台中市
職業 : 土木工程
愛好 : 電影
個性 : 開朗
使用年資 : 12 years
使用版本 : 2008~2015
積分 : 6
經驗值 : 6068
威望值 : 41
注冊日期 : 2008-10-16
男 水瓶座 羊

回頂端 向下

[討論]載入座標檔自動標示點號 Empty 回復: [討論]載入座標檔自動標示點號

發表 由 tcrmrrt3256 2011-08-25, 15:10

找好久...問好多人..但都不會.
感恩...大大.
tcrmrrt3256
tcrmrrt3256
初級會員
初級會員

文章總數 : 15
年齡 : 57
來自 : 嘉義市
職業 : 繪圖員
愛好 : 電腦資訊
個性 : 廣結善緣..但不隨性.
使用年資 : 3
使用版本 : 2008
積分 : 1
經驗值 : 4897
威望值 : 15
注冊日期 : 2011-08-17
男 天秤座 羊

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[討論]載入座標檔自動標示點號 Aoe1-113[討論]載入座標檔自動標示點號 Ioaoe110[討論]載入座標檔自動標示點號 2020-310[討論]載入座標檔自動標示點號 Oiu15010[討論]載入座標檔自動標示點號 2020-211[討論]載入座標檔自動標示點號 Ia15010[討論]載入座標檔自動標示點號 Aizyao10[討論]載入座標檔自動標示點號 Uos15010[討論]載入座標檔自動標示點號 BPl3tjj[討論]載入座標檔自動標示點號 Ziao1510
[討論]載入座標檔自動標示點號 Aoe15010[討論]載入座標檔自動標示點號 Oo-2-110[討論]載入座標檔自動標示點號 Zuoiy_10[討論]載入座標檔自動標示點號 Aizyao11[討論]載入座標檔自動標示點號 Iyb_1510[討論]載入座標檔自動標示點號 Aoe1-112[討論]載入座標檔自動標示點號 Uos15011[討論]載入座標檔自動標示點號 Aoe2da10[討論]載入座標檔自動標示點號 Aoe2da11[討論]載入座標檔自動標示點號 Aoe10