明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1629|回复: 3

正在为ssget "_cp'"而抓狂,哪位可以指导一下

  [复制链接]
发表于 2007-12-1 14:12:00 | 显示全部楼层 |阅读模式

怎么才能通过已知的不规则的闭合多段线,选定里面的对象呢?
之前有高人知道用ssget _cp 但是,研究了半个星期都没有头绪,哪位可以指点一下呢?

关键是我不知道怎么建立一个多段线坐标的表。。。

发表于 2007-12-2 14:02:00 | 显示全部楼层

(ssget “WPpt_list filter-list)

建立包含在符合 filter- list pt_list 所定义的多边形中所有图元的选择集

或者

(ssget CPpt_list filter-list)

建立包含与接触到经过pt_list 符合filter-list所定义的多边形中所有图元的选择集

这两个函数都可以提取:

前着提取的前提是文字必须完整的在图形边界里面,而后者是文字完整的包含在图形边界里面或者文字与图形边界相交都可以

发表于 2007-12-2 14:52:00 | 显示全部楼层

论坛有很多帖子给了提取LWPOLYLINE 和POLYLINE顶点坐标的程序段

下面附两个方法:

方法一:

(defun vertexs (ename / plist pp n)       
  (setq obj (vlax-ename->vla-object ename))
  (setq plist (vlax-safearray->list
(vlax-variant-value
  (vla-get-coordinates obj))))
  (setq n 0)
  (setq entitytype (cdr (assoc 0 (entget ename))))
  (if ( = entitytype "LWPOLYLINE")
     (setq ppm 2 )
     (setq  ppm 3)
    )
  (repeat (/ (length plist) ppm);注意这个地方是用2还是3如果是LWPOLYLINE 则是2 POLYLINE 是3
    (setq pp (append pp (list (list (nth n plist)(nth (1+ n) plist)))))
    (setq n (+ n ppm));注意这个地方是用2还是3
  )
  pp
)

方法二:

(defun DXFEG (C E) (cdr (assoc C (entget E))))

(defun DXF (C E) (cdr (assoc C E)))

(defun MAKEPOINTLIS (E / EG LIS)
(setq LIS NIL)
(cond
((= "LWPOLYLINE" (DXFEG 0 E))
(setq EG (entget E))
(while
(setq EG (member (assoc 10 EG) EG))
 (setq LIS (cons (cdar EG) LIS)
  EG (cdr EG)
 )
)
(reverse LIS)
)
((= "POLYLINE" (DXFEG 0 E))
(while
(and
  (setq E (entnext E))
  (setq EG (entget E))
  (/= "SEQEND" (DXFEG 0 E))
)
 (setq LIS (cons (DXF 10 EG) LIS))
)
(reverse LIS)
)
(t (alert " not a polyline ") NIL)
)
)

推荐你用第二个。

发表于 2007-12-2 15:11:00 | 显示全部楼层
本帖最后由 作者 于 2007-12-2 15:12:12 编辑

假设你的多段线的图元名为ename
(setq pts '())
(mapcar '(lambda(x) (if (= (car x) 10)(setq pts (append pts (list (cdr x)))))) (entget ename))
pts

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

本版积分规则

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

GMT+8, 2025-5-17 18:45 , Processed in 0.174593 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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