明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1577|回复: 9

请教飞哥!!!

[复制链接]
发表于 2004-12-21 19:44:00 | 显示全部楼层 |阅读模式
请问有哪个函数可以提取一曲线的各个顶点??(最好是通用函数)看帮助没查到...
发表于 2004-12-22 08:20:00 | 显示全部楼层
 楼主| 发表于 2004-12-22 21:14:00 | 显示全部楼层
飞哥,我所说的是曲线(当然这里广义的是包括直线和样条曲线)有顶点也有他们的端点,我是想你是否知道一函数就象端点是有VLAX-CURVE-GETSTARTPOINT函数,程序显得繁文了!
发表于 2004-12-22 22:37:00 | 显示全部楼层
本帖最后由 作者 于 2004-12-25 19:50:03 编辑
  1. ;;多义线顶点坐标
  2. (defun c:test010 (/ ss i ssn retcoord n pt)
  3.    (setvar "cmdecho" 0)
  4.    (princ "\n选取PLINE多义线...")
  5.    (setq ss (ssget '((0 . "*POLYLINE"))))
  6.    (setq i 0)
  7.    (setvar "pdmode" 33)
  8.    (repeat (sslength ss)
  9.        (princ (strcat "\n第" (rtos (+ i 1) 2 0) "条线数据 : "))
  10.        (princ)
  11.        (setq ssn (ssname ss i))
  12.        (setq retcoord (vla-get-Coordinates (vlax-ename->vla-object ssn)))
  13.        (setq n 0)
  14.        (repeat
  15.            (length (vlax-safearray->list (vlax-variant-value retcoord))
  16.            )
  17.              (setq pt
  18.              (vlax-safearray-get-element (vlax-variant-value retcoord) n)
  19.              )
  20.              (princ "\n")
  21.              (princ pt)
  22.              (setq n (1+ n))
  23.        )
  24.        (princ)
  25.        (princ "\n ")
  26.        (princ)
  27.        (setq i (+ 1 i))
  28.    )
  29.    (princ)
  30. )
 楼主| 发表于 2004-12-24 12:39:00 | 显示全部楼层
我要的可能就是4楼提供的vla-get-Coordinates函数,我试试看有没有对所有线条具有通用性,你的程序思路清晰,很感谢你哈!!!
 楼主| 发表于 2004-12-28 10:49:00 | 显示全部楼层
vla-get-Coordinates 函数用法出错???帮助查不到该函数的用法??后面跟VLA变量有问题!!!可以在CAD下面直接试!


他后面不跟VLA变量那该怎么用??
发表于 2004-12-28 10:57:00 | 显示全部楼层
(vlax-safearray->list (vlax-variant-value (vla-get-Coordinates (vlax-ename->vla-object (car (entsel))))))



后面是表处理的问题,希望你自己能解决。。。


这个函数对LINE,SPLINE等都不适用的。。。楼上给了这么多方法,再加上你自己想想,应该很容易做出你需要的函数(提示:选择对象后,判断一下对象是什么东西,然后根据不同对象类型使用不同的取顶点的函数)
 楼主| 发表于 2004-12-28 14:29:00 | 显示全部楼层
要是样条曲线,用哪个函数才能提取顶点??/直线可以直接取端点是了,(如果不是用顶点组码,不要转移话题或反问,呵呵),谢谢直接回答!
发表于 2004-12-28 15:53:00 | 显示全部楼层
(vlax-safearray->list (vlax-variant-value (vla-get-fitpoints (vlax-ename->vla-object (car (entsel))))))


这些都是ACTIVEX方法,如果你要用,最好去学习VLISP的ACTIVEX方法,,,这样一点一点地问不是办法。。。


还是忍不住反问一下,用DXF组码有什么不好?
 楼主| 发表于 2004-12-29 19:49:00 | 显示全部楼层
上面给定的两个得到的是数组!直线的两端点能得到是数组就好了,类型一样处理起来好办些!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-18 00:00 , Processed in 0.253855 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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