明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: muwind

[求助]LSP在CAD14如何读取尺寸标注的实际值

  [复制链接]
发表于 2008-7-7 20:16:00 | 显示全部楼层
看看我的函数库中有个取标注值的.
  1. ;取标注文本.
  2. ;(gps->getdimtext  (car (entsel)))
  3. ;xshrimp 2008.07.07
  4. (defun gps->getdimtext (ent / e el roop)
  5.    (if ent
  6.    (progn   
  7.    (setq e (cdr (assoc -2 (tblsearch "block" (cdr (assoc 2 (entget ent))))))  roop T)
  8.    (while roop
  9.      (setq e (entnext e)   el(entget e))
  10.      (if (member '(0 . "MTEXT") el)
  11.        (setq roop nil)
  12.      )
  13.    )
  14.     ;判断有无修改.
  15.    (if (or
  16.        (= (cdr (assoc 1 (entget ent))) "<>")
  17.        (= (cdr (assoc 1 (entget ent))) "")
  18.        )
  19.    (strcat "<" (cdr (assoc 1 el)) ">")
  20.    (cdr (assoc 1 el))
  21.    )   
  22.    )
  23.    )
  24. )
 楼主| 发表于 2008-7-7 22:43:00 | 显示全部楼层
首先非常感谢各位的热心指导,我去试试
 楼主| 发表于 2008-7-15 21:28:00 | 显示全部楼层
本帖最后由 作者 于 2008-7-16 13:36:41 编辑

11楼的我试用了,非常好,基本满足我的愿望了。有个很细小的问题

R14取出来的有些是“/A1;”开头的东西,稍加修改就是我要的数据了,但在14以上的版本不是(比如04版),需要区别对待。不过在04里我倾向直接去42组码的值,问题不大。再次谢谢xshrimp兄

发表于 2008-7-22 23:44:00 | 显示全部楼层

比如:

尺寸标注的值为119.5,可用11楼的方法,提取出来却是  "<\\A1;119.5>"

请教大家,如何去除多余的部分,只获取1119.5这个值?!

 楼主| 发表于 2008-7-23 23:08:00 | 显示全部楼层

我试过不是所有的标注尺寸都有这种情况,所以我采用的方式,是先判断取出来的东西是不是 以\\A1开头的形式存在,如果不是就直接取该数据,否则就用SUBSTR读取 \\A1后面的数据。经过测试,完全可行

发表于 2008-7-24 00:29:00 | 显示全部楼层
(setq str "<\\A1;119.5>")
(if  ( = (substr str 1 5) "<\\A1;" ) 
  (setq str (substr str 6 (- (strlen str) 6)))   
);end if
发表于 2008-7-24 00:41:00 | 显示全部楼层
vla-get-Measurement
发表于 2008-7-24 00:47:00 | 显示全部楼层

修改后的值用vla-get-TextOverride

发表于 2008-7-24 00:49:00 | 显示全部楼层

还用R14?

发表于 2010-7-23 11:13:00 | 显示全部楼层
我是小白,请问如何使用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 08:35 , Processed in 0.186398 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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