明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1872|回复: 5

[求助]哪位高手知道如何获取多义线的顶点列表?并转换成坐标,我想把某一物体复制到

[复制链接]
发表于 2009-1-15 22:20:00 | 显示全部楼层 |阅读模式
[求助]哪位高手知道如何获取多义线的顶点列表?并转换成坐标,我想把某一物体复制到多义线的各个顶点上[br][求助]哪位高手知道如何获取多义线的顶点列表?并转换成坐标,我想把某一物体复制到多义线的各个顶点上。
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2009-1-15 22:41:00 | 显示全部楼层
(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)
  (repeat (/ (length plist) 2)
    (setq pp (append pp (list (list (nth n plist)(nth (1+ n) plist)))))
    (setq n (+ n 2))
  )
  pp
)
(setq ss (car (entsel "\n请选取要复制的物体:")))
(if ss
(setq SE (car (entsel "\n请选取多义线:")))
(command "copy" ss (vertexs SE))
;在这里怎么复制到各个顶点?
 楼主| 发表于 2009-1-15 23:04:00 | 显示全部楼层
本帖最后由 作者 于 2009-1-15 23:08:00 编辑

我要达到的结果是:

 

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2009-1-16 11:02:00 | 显示全部楼层

一句话取多线顶点:

(vl-remove-if 'not (mapcar '(lambda (x) (if (= (car x) 10) (cdr x))) (entget(car(entsel)))))

文字可以用textbox 或 getboundingbox 取其范围

多线的右上角可以根据四个坐标点判断最大值

计算下就可以了

发表于 2009-1-16 11:02:00 | 显示全部楼层

思路简单,但过程会繁琐,pp是点集合,要从集合里面拿点出来就要循环控制,这是第一个问题,第二个问题就是移动实体了,多线段的顶点个数如果跟实体数量不一致,需要做一个判断,或者强制执行某代码

如果按提供的图,只移动文字,可以用vla-PUT-INSERTPOINT来操作

 楼主| 发表于 2009-1-16 13:25:00 | 显示全部楼层
谢谢大家的关注,问题已经解决。感谢肖楚
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-28 16:25 , Processed in 0.268488 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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