- 积分
- 16531
- 明经币
- 个
- 注册时间
- 2011-10-13
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2012-10-14 00:32:41
|
显示全部楼层
(defun C:t2();3维多段线转2维多段线
(VL-LOAD-COM)
(setq AcadObject (vlax-get-acad-object))
(setq AcadDocument (vla-get-ActiveDocument Acadobject))
(setq mSpace (vla-get-ModelSpace Acaddocument))
(setq ss1 (ssget '((0 . "POLYLINE"))));只选多段线
(setq n (sslength ss1));得到选择集的图元数目
(setq m 0);循环变量m置0,从选择集中的第1个文字改起
(while (< m n);循环,可以一次改多个对象
(setq ename (ssname ss1 m));将选择集转为图元名
(setq ent_data (entget ename))
(setq str_0 (cdr (assoc 0 ent_data)))
(while (/= str_0 "POLYLINE")
(setq ename (car (entsel "选择的实体非三维多段线,请重新选择!:")))
(setq ent_data (entget ename))
(setq str_0 (cdr (assoc 0 ent_data)))
)
(setq obj (vlax-ename->vla-object ename));将图元名转对象
(setq pts (vlax-variant-value (vla-get-coordinates obj)))得到三维多段线的顶点,返回值是个数组
(setq listpts (vlax-safearray->list pts)) |
|