怎么获得二维多段线的顶点坐标
请教各位我怎么不能像查多段线那样查询到二维多段线的坐标
llsheng_73 发表于 2024-5-5 17:48
llsheng_73大侠好!我的想法看看能不能实现?
;DD3D利用foreach函数取得多段线顶点plpoint加上获取其标高值并绘制三维多段线
(defun c:DD3D ()
(setq i12 0)
(setq pline (car (entsel)))
(setq ent (entget pline))
(setq pts nil)
;(print pts)(print "pts/顶点数=")(print i12)
(SETQplineZ38A (cdr (assoc 38 (entget pline)))) ;获取所选图元的标高值=高线高程Z值
(setq plineZ388A(rtos plineZ38A 2 16));标高值=等高线高程Z值
(princ plineZ388A)
(terpri);回行显示下一项屏
(progn
(foreach lst ent
(if (= (car lst) 10);筛选提取'定义数据'中第一个点对为'10'的项
(setq pts (append pts (list (cdr lst))));再次提取'10'的后面具体数据→并组成一个表
)
;(setq pts#lsList pts)
(append pts '(plineZ388A)) ;;执行结果会得到一个新的列表,追加的数据一定是列表否则会报错。
(setq i12 (1+ i12))
)
(command "3dpoly" )
(foreach x pts (command "non" x))
(command "")
)
(princ)
)
(defun plxyz(e fun / pt p n);多段线节点坐标(适用于所有类型的多段线,返回结果为三维坐标点表),连续重合点只取一个,根据fuz阀值过滤接近点
(or(=(type e)'vla-object)(setq e(vlax-ename->vla-object e)))
(cond((=(setq n(vlax-get-property e'objectname))"AcDbLine")
(list(vlax-curve-getstartpoint e)(vlax-curve-getendpoint e)))
((WCMATCH n"*Polyline")
(repeat(setq n(fix(+(vlax-curve-getendparam e)(if(=(vlax-get-property e'Closed):vlax-true)0 1))))
(or(equal(setq n(1- n)p(vlax-curve-getpointatparam e n))(car pt)fun)
(setq pt(cons p pt))))
(if(equal(car pt)(last pt)fun)
(reverse(cdr(reverse pt)))pt)))) (defun $读取二维多段线顶点$ (e / ed pts)
(if (AND E
(= (TYPE E) 'ENAME)
(eq (cdr (assoc 0 (entget e))) "POLYLINE")
)
(progn
(while (and
(setq e (entnext e))
(/= (cdr (assoc 0 (setq ed (entget e)))) "SEQEND")
)
(setq pts (cons (cdr (assoc 10 ed)) pts))
)
)
)
(reverse pts)
) (vlax-safearray->list(vlax-variant-value(vla-get-coordinates(vlax-ename->vla-object en)))) dcl1214 发表于 2024-5-4 08:46
(defun $读取二维多段线顶点$ (e / ed pts)
(if (AND E
(= (TYPE E) 'ENAME)
请问二维多段线的基本属性和顶点在数据库中是单独存放的吗? _chaogang 发表于 2024-5-4 21:42
请问二维多段线的基本属性和顶点在数据库中是单独存放的吗?
你用的哪个数据库?mysql sqlitesqlserver? dcl1214 发表于 2024-5-5 00:25
你用的哪个数据库?mysql sqlitesqlserver?
我是想问它在cad中是怎么保存的我用entget 和entnext 发现它的顶点有单独的图元名也是有了新发现:lol:lol:lol llsheng_73 发表于 2024-5-5 17:48
大侠真乃神人也。:lol 寒潮大冬瓜 发表于 2024-5-29 22:14
llsheng_73大侠好!我的想法看看能不能实现?
;DD3D利用foreach函数取得多段线顶点plpoint加上获取其标 ...
这个时候就是添加标高值多段线顶点表为Z值→但是不能实现。
页:
[1]
2