明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

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

请高手帮忙

  [复制链接]
 楼主| 发表于 2006-11-9 11:01 | 显示全部楼层

可否给出一个完整的程序?假定图上现在有一条线,厚度113002,层dgx,颜色3,类型polyline,不闭合,通过鼠标进行选择,然后与属性表中的相关行进行比较,(假定属性表只有上边给出的前三行,),并返回比较结果,谢谢!

发表于 2006-11-10 19:41 | 显示全部楼层
还是没有人帮你写,我决定帮你写一个1
发表于 2006-11-10 21:50 | 显示全部楼层

将文件中的内容读入到全局变量的列表 ThickNessList 中,然后用assoc 函数就可以了,很简单的,一般有5000个以下的记录,速度也不是太慢,我试过类似的程序 thicknesslist =( (1121000 jmd 6  text      no) (121003 jmd 6 polyline  yes)
(113002 dgx 3 polyline  no).........)

发表于 2006-11-10 21:54 | 显示全部楼层

(defun txtstrtolist (txtstr)
  (repeat (strlen txtstr)
    (setq singlestr (substr txtstr p 1))
    (if (/= singlestr " ")
      (progn
 (setq str (strcat str singlestr))
 (if (= p (strlen txtstr))
   (setq datalist (append datalist (list str))
  str  ""
   )
 )
      )
      (if (/= str "")
 (setq datalist (append datalist (list str))
       str      ""
 )
      )
    )
    (setq p (1+ p))
  )
)
(defun c:test ()
  (while (not
    (setq
      en (car (entsel "请选择一个图元:"))
    )
  )
    (princ "\n没有选择到任何图载元,请重新选择:")
  )
  (setq obj (vlax-ename->vla-object en))
  (setq thick   (rtos (vla-get-thickness obj) 2 0)
 layer   (vla-get-layer obj)
 color   (itoa (vla-get-color obj))
 entitype  (vla-get-objectname obj)
 entitype  (strcase (substr entitype 5) t)
 inforlist (list thick layer color entitype)
  )
  (setq fn   (open "c:\\data.txt" "r")
     flag t
  )
  (while (and (setq txt_str (read-line fn)
       )
       flag
  )
    (setq p 1
   str ""
   datalist '()
    )
    (txtstrtolist txt_str)
    (setq data_list (reverse (cdr (reverse datalist))))
    (if (and (vl-every '= inforlist data_list) data_list)
      (setq flag nil)
    )
  )
      (close fn)
  (if (not flag)
    (progn
      (setq datastr ""
     n 0
      )
      (repeat (length datalist)
 (setq datastr (strcat datastr (nth n datalist) " ")
       n       (1+ n)
 )
      )
      (setq datastr (strcat "在文件中找到与之对应的信息!"
       "\n它的信息为:"
       datastr
      )
      )
      (alert datastr)
    )
    (alert "在文件中没有找到与之对应的信息!")
  )
)

发表于 2006-11-10 22:02 | 显示全部楼层
上面代码我帮你写的在指定文件中寻找图元信息的程序,文件被指定为c:\下的data.txt,文件中各个信息字符之间的空格的数目和位置可以是任一的.
发表于 2006-11-10 22:11 | 显示全部楼层
程序的难点也就在于如何将一行用位置和数目都不可预测的空格分割开的字符串重新整理,使之可以与图元属性进行比较!
发表于 2006-11-10 22:16 | 显示全部楼层
运行时,如果你的autoCAD事先没有加载activeX扩展函数,则先用(vl-load-com)加载之!
发表于 2006-11-11 19:55 | 显示全部楼层
不知道fengyong88大哥,有没有看到我的回贴,程序运行是否有问题,速度怎么样?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-28 17:44 , Processed in 0.342471 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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