找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1845|回复: 12

[讨论]:DXF组码的怪问题

[复制链接]
发表于 2004-1-16 20:11:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
对于许多天正实体,用自己数据表中的数据作过滤器竟然选不到自己!!??
比如cad图上只有一个天正墙体,用下面的 t1 函数选择墙体后,得不到选择集?然而 t2 函数可以。
天正说明中说天正墙体组码39项是墙体高度。
我十分疑惑,难道tch墙体的真实高度小于在组码39中的值?而且,我发现其他的tch实体也有一些这样的问题~

(defun c:t1 (/ e e39 s)
(setq e (entget (car (entsel))))
(print (setq e39 (assoc 39 e)))
(setq s (ssget "x" (list e39)))
(if s t nil)
)

(defun c:t2 (/ e e39 s)
(setq e (entget (car (entsel))))
(print (setq e39 (assoc 39 e)))
(setq s (ssget "x" (list '(-4 . "<")e39)))
(if s t nil)
)
用下面这一段也不行?
(defun c:t4 (/ e e39 s n a)
(setq  a 10000
  n 149
)
;;;(setq n (getint "\nDXF code:"))
(setq e (entget (car (entsel))))
(print (setq ee (cdr (assoc n e))))
(print (setq fil (list (cons -4 "<AND")
       (cons -4 "<=")
       (cons n (+ ee a))
       (cons -4 ">=")
       (cons n (- ee a))
       (cons -4 "AND>")
     )
   )
)
(setq s (ssget "x" fil))
(if s t nil)
)

abbs上天正版主说 : 可能是Autodesk的DXF有陷阱,有些组不让执行一些功能 .
请教各位,谁能说清楚是怎么回事?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 23个

财富等级: 恭喜发财

发表于 2004-1-17 09:47:04 | 显示全部楼层
感觉是TCH自己做得不到位吧?autodesk自己的DXF体系应该是久经考验了的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-1-18 13:57:13 | 显示全部楼层
aeo 斑竹
你说是怎么回事呀?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-1-25 18:38:36 | 显示全部楼层
选择时:天正墙体dxf39永远是0.

应该是天正的bug吧.

用dxf49吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-1-26 10:25:50 | 显示全部楼层
天正墙体没有dxf49项呀~
dxf39是墙高
((-1 . <图元名: 400792a0>) (0 . "TCH_WALL") (330 . <图元名:
40077c10>) (5 . "15C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"WALL") (100 . "TDbCurveEntity") (46 . 0.0) (47 . 100.0) (68 . 0) (100 .
"TDbWall") (38 . 0.0) (39 . 3000.0) (10 37395.6 4029.99 0.0) (11 27015.2
8489.24 0.0) (40 . 120.0) (41 . 120.0) (42 . 80.0) (148 . 0.0) (149 . 3000.0)
(50 . 0.0) (73 . 0) (74 . 40) (75 . 0) (90 . 0) (76 . 0) (411 . "PUB_HATCH")
(412 . "0") (413 . "0") (414 . "0") (1 . "") (2 . ""))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-1-26 12:57:15 | 显示全部楼层
最初由 wkai 发布
[B]天正墙体没有dxf49项呀~
dxf39是墙高
((-1 . <图元名: 400792a0>) (0 . "TCH_WALL") (330 . <图元名:
40077c10>) (5 . "15C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"WALL") (100 . "TDbCurveE... [/B]

149 是什么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-1-26 17:27:02 | 显示全部楼层
abbs金剑斑竹说149也是墙高~
见这个帖子
http://www.abbs.com.cn/bbs/post/ ... amp;tpg=1&age=0
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-1-27 01:34:31 | 显示全部楼层
6.0了吧
5.5有的
((-1 . <图元名: 4007f388>) (0 . "TCH_WALL") (330 . <图元名:
4007dc10>) (5 . "179") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"WALL") (100 . "TDbCurveEntity") (47 . 100.0) (68 . 0) (100 . "TDbWall") (38 .
0.0) (39 . 3000.0) (10 22792.8 3739.81 0.0) (11 25138.4 3205.01 0.0) (40 .
120.0) (41 . 120.0) (42 . 80.0) (48 . 0.0) (49 . 3000.0) (50 . 0.0) (73 . 0)
(74 . 40) (75 . 0) (90 . 0) (76 . 0))

那就149吧,能选就行了
要是天正老变化,你写出来就没意思了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-1-27 08:58:44 | 显示全部楼层
:(
可是用149也不行的~
cad实体的组码表是不是只是一个用于lisp操作的接口?
请斑竹们批讲一下


(defun c:t4 (/ e e39 s n a)
(setq a 10000
n 149
)
;;;(setq n (getint "\nDXF code:"))
(setq e (entget (car (entsel))))
(print (setq ee (cdr (assoc n e))))
(print (setq fil (list (cons -4 " (cons -4 "<=")
(cons n (+ ee a))
(cons -4 ">=")
(cons n (- ee a))
(cons -4 "AND>")
)
)
)
(setq s (ssget "x" fil))
(if s t nil)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-1-27 09:22:24 | 显示全部楼层
我想,在平面图中天正的墙体是没有高度的,只有在三维图中才有高度。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-1-27 10:17:11 | 显示全部楼层
情况不止于此!
对于其他的天正实体也存在同样的问题
比如一个天正索引标注,dxf数据如下
((-1 . <图元名: 400782a0>) (0 . "TCH_INDEXPOINTER") (330 . <图元名: 40077c10>)
(5 . "15C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "PUB_DIM") (100
. "TDbEntity") (46 . 0.0) (47 . 100.0) (68 . 1) (100 . "TDbSymbWithText") (7 .
"_TCH_LABEL") (40 . 3.5) (52 . 0.0) (410 . "PUB_TEXT") (100 .
"TDbSymbIndexPointer") (70 . 0) (10 30375.9 11402.8 0.0) (11 31604.9 13002.8
0.0) (41 . 10.0) (42 . 32.9428) (43 . 893.786) (1 . "1") (2 . "12") (3 .
"一号楼梯") (4 . "详见建施"))
其中dxf3为上标文字,用下端程序测试也无法选到它自己~

(defun c:t1 (/ e e3 s)
(setq e (entget (car (entsel))))
(print (setq e3 (assoc 3 e)))
(setq s (ssget "x" (list e3)))
(if s t nil)
)

一直甚为不解~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 29个

财富等级: 恭喜发财

发表于 2018-8-21 01:43:21 | 显示全部楼层
用vlisp取得的组码怎么取值,组码如下:
Application (RO) = #<VLA-OBJECT IAcadApplication 00c2eb8c>  
; BottomFace = 0
; Catalog = 1  
; CoreMater = 30   
; Document (RO) = #<VLA-OBJECT IAcadDocument 06504694>   
; Elevation = 0.0   
; EndCap = 0
; Handle (RO) = "BA"  
; Ha**tensionDictionary (RO) = 0   
; HatchLayer = "A-HATCH-WALL"   
; Height = 3000.0  
; ...........
;;以下代码从坛里老师抄来学习的
;;  用Visual Lisp 提取组码
(Defun C:Test ()
  (setq en0 (car (entsel)))    ;;请选有属性定义的图块
  (setq vn0 (vlax-ename->vla-object en0))                 ;;
     ;;  (setq fontstl (vla-get-StyleName obj))
     (setq lstVar (vla-getattributes vn0))
     (setq lstAttrs (vlax-safeArray->list (vlax-variant-value lstVar)))
     (setq TextString nil)
     (foreach attr lstAttrs
         (setq TagString (vla-get-TagString attr))
         (if (equal TagString "length")          ;此处为想要的元素
             (setq TextString (vla-get-TextString attr))
          )
     )
     (if TextString
     (princ (strcat "The content of length = " TextString))
     (princ "没有找到length ")
)
(prin1)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5060个

财富等级: 富甲天下

发表于 2018-8-21 07:31:34 来自手机 | 显示全部楼层
ssget并不是所有组码都支持,你用-4 . < 可以选,可能跟全选没什么区别。别说天正自定义实体了,cad基本图元在块BLOCK表有问题时(比如块名含有特殊的字符)也不能过滤块名
来自: 微社区
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-29 23:19 , Processed in 0.634464 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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