明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1911|回复: 6

[基础] 關於尺寸標示的dxf碼問題?

[复制链接]
发表于 2011-3-25 09:05:53 | 显示全部楼层 |阅读模式
各位好!!
有下列問題,請教為何 同一個尺寸值用 (entlast) 去抓取就會出錯
但如用點選去抓取尺寸,就可得出dxf碼?
我看了看如用entlast是只會抓取 ((-1 . <圖元名稱: 40081ad8>)
而用點選的就會抓出 (<圖元名稱: 40081ad8> (-26.017 -9.83999 0.0))
請教如用 (entlast) 去抓尺寸值,如何得出 (330 . <圖元名稱: 4007dc10> 以後的資料?

謝謝!!


(command "dimordinate" pause)
(setq dim_data(entlast))
得出結果:  <圖元名稱: 40081ad8>
(setq old_data(assoc 1 (dim_data)))
ERROR ==> 損壞的引數類型: consp <圖元名稱: 40081ad8>




(setq dim_data(entsel))
結果: (<圖元名稱: 40081ad8> (-26.017 -9.83999 0.0))

(SETQ old_data(entget(car dim_data)))
結果:
((-1 . <圖元名稱: 40081ad8>) (0 . "DIMENSION")

(330 . <圖元名稱: 4007dc10>) (5
. "58B") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (62 . 0) (100
. "AcDbDimension") (2 . "*D24") (10 -10.0 -10.0 0.0) (11 -37.3343 -17.0849 0.0)
(12 0.0 0.0 0.0) (70 . 102) (1 . "") (71 . 5) (72 . 1) (41 . 1.0) (42 .
27.3343) (52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0) (210 0.0 0.0 1.0) (3 .
"lincctw_avy") (100 . "AcDbOrdinateDimension") (13 -37.3343 -24.9392 0.0) (14
-37.3343 -21.4849 0.0) (15 0.0 0.0 0.0) (16 0.0 0.0 0.0) (40 . 0.0) (50 . 0.0))



发表于 2011-3-25 09:19:05 | 显示全部楼层
本帖最后由 Gu_xl 于 2011-3-25 09:20 编辑

回复 lincctw_ccl 的帖子

entlast 得到的图元名,entsel 得到的是'(图元名 点)列表!
(entget 图元名) 得到dxf 列表!
 楼主| 发表于 2011-3-25 09:59:21 | 显示全部楼层
回复 Gu_xl 的帖子

感謝 版主指導!!
真是一言點醒初學者的我!!
一直都是只用 entlat 在抓取最後的圖元
還沒利用它去抓取過dxf值
現已抓到我要的組碼了
謝謝!!
 楼主| 发表于 2011-3-25 10:44:15 | 显示全部楼层
本帖最后由 lincctw_ccl 于 2011-3-25 15:41 编辑

回复 Gu_xl 的帖子


再請教一下版主(不好意思更新一下問題 )
下面是我嘗試在做的東西
請問為何到最後會出現 損壞的 DXF 群組: (1 . -10.0)...
請教是我哪部份寫錯了嗎?
還是這種方式是不可行的!!

謝謝!

(defun c:dx (/ )
(setvar "osmode" 0);_關閉捕捉
(setvar "cmdecho" 0);_關閉命令提示
(setvar "blipmode" 0);;標記點開關
(setq orthomode_bak (getvar "orthomode"));_記錄當前正交模式
(setvar "orthomode" 1);;正交模式開關
(command "_ucsicon" "on")
(setq bs (getpoint "\n座標原點:"))
(command "ucs" "n" bs)
(setq pa (getpoint "\n選擇標註點: "))
(setq turedim (car(trans pa 2 0)))
(setq dimpt (getpoint pa "\n尺寸放置位置: "))
(command "_dimordinate"  pa dimpt)
(setq sss (entget(entlast)))
(setq flasedim_txt(assoc 1 sss))
(setq newlist(cons 1 turedim))
(setq turedim_txt(subst newlist flasedim_txt sss))
(entmod turedim_txt)
(setvar "orthomode" orthomode_bak);_還原正交模式
(prin1)
)
发表于 2011-3-25 11:11:20 | 显示全部楼层
(1 . -10.0)
==>
(1 . "-10.0") 字符串才对!
 楼主| 发表于 2011-3-25 11:20:09 | 显示全部楼层
請問您的意思是不是要把下列求出來的值變成字串符!!
(setq turedim (car(trans pa 2 0)))
 楼主| 发表于 2011-3-25 11:26:44 | 显示全部楼层
回复 Gu_xl 的帖子

感謝版主指導!!
我又試了!!可以了!!!
謝謝!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-10 13:16 , Processed in 0.176156 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表