明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1523|回复: 9

[求助]如何用autolisp提取图形信息?

  [复制链接]
发表于 2006-10-26 17:55:00 | 显示全部楼层 |阅读模式

我是个初学者,问题可能太弱了,还望高手、大虾们耐心指教。

我的问题是,想获得图形中单独图形的属性,并且输出到一个文本文件中,比如,有图形中两个圆,鼠标选取后,我想得到它们的圆心坐标和半径,输出到文本文件中,得到如下参数:

圆1的半径为“...”,圆1的x坐标为“...”,y坐标为“...”

圆2的半径为“...”,圆2的x坐标为“...”,y坐标为“...”

发表于 2006-10-26 18:46:00 | 显示全部楼层

简单,但是需要注意的是,你的圆1、圆2是电脑自己定义的还是你自己指定的,否则有些麻烦,可能要涉及到排序。你可以先看看别人的程序。就某一单个对象来说返回列表信息如下:

(entget(nth 0 (entsel)))

 楼主| 发表于 2006-10-26 19:27:00 | 显示全部楼层

圆是随便在电脑上画的两个圆,先不用排序,也可能是有好多圆,只选择了其中的两个,然后返回值。

那里有类试的程序啊?多谢大侠,顺便给个autolisp的讨论群吧。

 楼主| 发表于 2006-10-27 11:30:00 | 显示全部楼层
是不是定义个(getq ss (ssget))就可以从屏幕上获得图形参数了?
发表于 2006-10-27 22:12:00 | 显示全部楼层

因为有时间,信手写了一个,仅作参考!

(defun c:test()
  (princ"\n请选择图元:")
  (setq ss (ssget '((0  . "Circle")))
 filename "data.txt"
 fn (open (strcat "d:\\" filename) "w")
 index 0
 )
  (write-line "Circle's data-radius and x,y coordinate" fn)
  (while (< index (SSLENGTH ss))
    (setq cirobj (vlax-ename->vla-object (ssname ss index))
            cenpt (vlax-safearray->list (vlax-variant-value (vla-get-center cirobj)))
   )
    (write-line (strcat "圆" (itoa (1+ index)) "的半径为:"
   (vl-princ-to-string (vla-get-radius cirobj)) ","
   "圆" (itoa (1+ index)) "的X坐标为:"
   (vl-princ-to-string (car cenpt)) ","
    "Y坐标为:"
   (vl-princ-to-string (cadr cenpt)) "."
   ) fn
      )
    (setq index (1+ index))
    )
  (close fn)
  )

 楼主| 发表于 2006-10-28 09:00:00 | 显示全部楼层
多谢楼上!您真乃侠之大者,以后向你多学习!
发表于 2006-10-28 09:56:00 | 显示全部楼层
想学lisp还是从autolisp开始吧!
发表于 2006-10-28 14:46:00 | 显示全部楼层
不用客气,大家相互学习!
 楼主| 发表于 2006-10-29 10:56:00 | 显示全部楼层
请问如果visuallisp不认ActiveX函数怎么办?
上面程序中得(setq cirobj (vlax-ename->vla-object (ssname ss index))运行后出现
错误: no function definition: VLAX-ENAME->VLA-OBJECT,
这是怎么回事?有如何处理?
 楼主| 发表于 2006-10-29 11:41:00 | 显示全部楼层
知道了,原来是没有加载ActiveX函数的原因,只需在前面加上一句
(VL-LOAD-COM)
就搞掂了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-21 04:11 , Processed in 0.162840 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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