明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5746|回复: 19

[求助]选取一条POLYLINE后同时获取扩展数据和坐标数据要怎么做?

    [复制链接]
发表于 2009-5-12 10:46:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-5-21 22:20:43 编辑

某些通过CAD二次开发生成的“POLYLINE”储存着一些信息,用该软件的“查寻”功能就能方便的得到相应信息。而利用CAD自带的LIST命令却只能查询到图层,颜色,线形,句柄等基本信息。而那些隐藏信息要怎么才能获取到呢?请教各位。。。
发表于 2009-5-12 20:42:00 | 显示全部楼层

你说的这些线内可能含有扩展数据。在命令行输入以下代码查询试试,  (setq a (entget (car (entsel)) '("*") ))  

 楼主| 发表于 2009-5-12 22:18:00 | 显示全部楼层

谢谢回复

果然象你说的那样,运行(setq a (entget (car (entsel)) '("*") ))后得到以下代码,

请问要如何才能分别提取出每个"POLYLINE"中,下列数据中的"AH111-01"和"273X5"位置的值呢

(既:敲命令->选取"POLYLINE"->命令行输出A:"AH111-01",B:"273X5"),先谢谢了

"ni ^*+0;:,4 ^*+0\\^[ nh ^LR iqoqjqhook QK mk K*: R>& nm mmeoiemm moof ") (1 .
"n fqfffffffffffffffj:rooh n:rono ") (1 . ">,27:>;:- {rn rn _nm mogqoqjqhook
|") (1 . "=0;& {rn rn {rn {m {rn {rn |") (1 . "3*2/ {rn rn {rn {rn {l {n |") (1
. ",7:33 {rn rn {rn {rn {rn {k {rn {m |") (1 . "9><: {rn rn {rn {rn {j {l {rn
{i 90-(>-; ,6183: |") (1 . "300/ {rn rn {rn {h {g {k |") (1 . "<01:r,*-9><: {rn
rn {rn llnoqjhhihhhknfhmk noooqooooooooooghn noooqooooooooooghn n
mqgoljonhggljijlmh:ronl mqgoljonhggljijlmh:ronl rnqmgomfooilkmiklgj:romh
rfiqjmoohjilnfilhkf fiqjmoohjilnfilhkf n V V o n nliqj 90-(>-; V V V V |") (1 .
"300/ {rn rn {rn {rn {f {k |") (1 . "<0:;8: {rn rn {rn {g {g {rn {no -:):-,:;
{j {rn |") (1 . "<0:;8: {rn rn {rn {f {f {rn {nn 90-(>-; {h {rn |") (1 . ":;8:
{rn rn {rn {nm nqnhhgjomilljhiiom:ronj {nm iqmglngjlohnhfjghn {g {nl 90-(>-; _h
*1410(1 |") (1 . ":;8: {rn rn {rn {nk rnqjifijmifomgnil:romj {nk
iqmglngjlohnhfjgim {f {nj 90-(>-; _h *1410(1 |") (1 . "):-+:' {rn rn {rn {no
{ni |") (1 . ":336/,:r<*-): {rn rn {rn llnoqjhhihhhknfhmk noooqooooooooooghn
noooqooooooooooghn rn rjqiomfjifgkmjoiigg:ronl gqjjlkilogjnklimjh:roni
jqknimlknmhgikohng:ronn rfiqjmoohjilnfilhkf fiqjmoohjilnfilhkf n V V |") (1 .
"):-+:' {rn rn {rn {nn {nh |") (1 . ":336/,:r<*-): {rn rn {rn jooo
noooqooooooooojioh noooqooooooooojioh rn rjqiomfjifgkmjoiigg:ronl
gqjjlkilogjnklimjh:roni jqknimlknmhgikohng:ronn rfiqjmoohjilnfilhkf
fiqjmoohjilnfilhkf n V V |") (1 . "/061+ {rn rn {rn llnoqjhhihhhkmomi
folqkhffmklignmlkm nofiqjmoohjilmojn |") (1 . "/061+ {rn rn {rn jooo
folqkhffmkligjfhok nofiqjmoohjilmjmkk |") (-3 ("PipeSolid-AH111-01" (1000 .
"AH111-01") (1000 . "273X5"))))

 楼主| 发表于 2009-5-13 21:46:00 | 显示全部楼层
本帖最后由 作者 于 2009-5-13 22:22:38 编辑

用以上代码可以成功提取出"AH111-01",

请问:

1.要如何才能同时提取出"273X5"中的"273",

2.如何用SSGET实现提取以上信息啊

向大家讨教了...

本帖子中包含更多资源

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

x
发表于 2009-5-14 10:45:00 | 显示全部楼层

分析过滤

 楼主| 发表于 2009-5-14 10:53:00 | 显示全部楼层

楼上兄弟,能否具体介绍一下,怎么“分析过滤”啊???怎么用LSP表达啊。谢谢

 楼主| 发表于 2009-5-17 16:19:00 | 显示全部楼层
这个功能对我来说很重要,希望大家出手相助,谢谢。
发表于 2009-5-17 21:33:00 | 显示全部楼层
试一试:
  1. (defun c:cx()
  2. (setq xdata (mapcar 'cdr (cdr (cadr (assoc -3 (entget (car (entsel)) (list "PipeSolid-*" "PipeWay-*" )))))))
  3. )
 楼主| 发表于 2009-5-17 22:06:00 | 显示全部楼层

感谢楼上兄弟,可以用了.

另外再请教各位,8楼的程序与下面这句我要出现在同一个程序里,也就是说ENTGET和SSGET选择的是同一个实体而我又只想选择一次.要怎么处理啊?

(SETQ SST (SSGET '((0 . "*POLYLINE")))

谢谢

发表于 2009-5-18 09:19:00 | 显示全部楼层

entget是获取图元的数据列表,它并不能选择实体,应该是entsel吧。建议使用entsel,直接可以选取你需要的实体,因ssget有可能选择到多于1个的实体,还需经过判断才能确定谁是你需要。

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

本版积分规则

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

GMT+8, 2025-5-16 22:32 , Processed in 0.205566 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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