明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1667|回复: 8

如何按顺序读取空间曲线上的各个控制点

[复制链接]
发表于 2004-8-6 08:46:00 | 显示全部楼层 |阅读模式
如题


本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2004-8-6 09:17:00 | 显示全部楼层
读取组码10
发表于 2004-8-6 14:17:00 | 显示全部楼层
以下这个子程序是你要的. ;就用举例:
; (setq point-list (GetPoints ((entget (car (entsel "\n请选曲线"))))))
(defun GetPoints (lst1 / pt lst1 )
(while (setq lst1 (member (assoc 10 lst1) lst1))
(setq pt (append pt (list (cdr (car lst1)))))
(setq lst1 (cdr lst1)))
pt
)
发表于 2004-8-6 15:06:00 | 显示全部楼层
飞哥的回答太笼统了,问的是"按顺序读取空间曲线上的各个控制点".


你这个是样条曲线,有办法取得各个控制点.我记得以前是谁写过关于这方面的贴子,你去搜索以下.不然,我这里收藏的有.
发表于 2004-8-6 16:10:00 | 显示全部楼层
根据以往的帖子,我认为他能够看明白我的回答。。。至于你后面那段话,我看不太明白。。。。


关于3楼的帖子,程序可能没问题,不过你的举例就错了,你自己要先试试。
 楼主| 发表于 2004-8-6 16:14:00 | 显示全部楼层
wmz,那就把你收藏的帖子给我看看吧
发表于 2004-8-7 18:02:00 | 显示全部楼层
(defun c:Test()
(vl-load-com)
(setq s (car (entsel "\n选择线: ")))
(setq ss (vlax-ename->vla-object S))
(setq p (vlax-safearray->list (vlax-variant-value (vla-get-controlpoints ss))))
(print p)(princ)
)
 楼主| 发表于 2004-8-9 07:57:00 | 显示全部楼层
哦?这样就行了?
发表于 2004-8-11 03:44:00 | 显示全部楼层
平时工作中不太用的上sp的控制点。不过要求组码10的话可以这样:


  1. (vl-remove-if-not '(lambda(x)(= 10 (car x))) (entget e))

复制代码


例如:


(vl-remove-if-not '(lambda(x)(= 10 (car x))) (entget (car(entsel))))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-18 21:35 , Processed in 0.211063 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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