[求助]哪位高手知道如何获取多义线的顶点列表?并转换成坐标,我想把某一物体复制到
[求助]哪位高手知道如何获取多义线的顶点列表?并转换成坐标,我想把某一物体复制到多义线的各个顶点上[求助]哪位高手知道如何获取多义线的顶点列表?并转换成坐标,我想把某一物体复制到多义线的各个顶点上。 (defun vertexs (ename / plist pp n) <br/> (setq obj (vlax-ename->vla-object ename))<br/> (setq plist (vlax-safearray->list<br/> (vlax-variant-value<br/> (vla-get-coordinates obj))))<br/> (setq n 0)<br/> (repeat (/ (length plist) 2)<br/> (setq pp (append pp (list (list (nth n plist)(nth (1+ n) plist)))))<br/> (setq n (+ n 2))<br/> )<br/> pp<br/>)<br/>(setq ss (car (entsel "\n请选取要复制的物体:")))<br/>(if ss<br/>(setq SE (car (entsel "\n请选取多义线:")))<br/>(command "copy" ss (vertexs SE))<br/>;在这里怎么复制到各个顶点? 本帖最后由 作者 于 2009-1-15 23:08:00 编辑 <br /><br /> <p>我要达到的结果是:</p><p> </p><p></p><p> </p> <p>一句话取多线顶点:</p><p>(vl-remove-if 'not (mapcar '(lambda (x) (if (= (car x) 10) (cdr x))) (entget(car(entsel)))))</p><p>文字可以用textbox 或 getboundingbox 取其范围</p><p>多线的右上角可以根据四个坐标点判断最大值</p><p>计算下就可以了</p> <p>思路简单,但过程会繁琐,pp是点集合,要从集合里面拿点出来就要循环控制,这是第一个问题,第二个问题就是移动实体了,多线段的顶点个数如果跟实体数量不一致,需要做一个判断,或者强制执行某代码</p><p>如果按提供的图,只移动文字,可以用vla-PUT-INSERTPOINT来操作</p> 谢谢大家的关注,问题已经解决。感谢肖楚
页:
[1]