明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4314|回复: 15

[基础] [求助]求助一个根据距离提取坐标的程序

  [复制链接]
发表于 2010-10-8 14:45:00 | 显示全部楼层 |阅读模式
在绘图的时候常常会遇到将多条pl线合并成一条线,然后在根据一定的距离提取坐标(比如20米、30米、50米。。。。。。。等等),求助高人能不能编写一个根据所需求的距离对合并后的pl线进行提取坐标的程序?先谢谢了!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2010-10-8 14:52:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2010-10-8 15:12:00 | 显示全部楼层

请使用vlax-curve-getPointAtDist函数

示例:计算多段线en 距离起点20米处的坐标:(vlax-curve-getPointAtDist en 20)

 楼主| 发表于 2010-10-8 16:46:00 | 显示全部楼层

不会用啊!

 

发表于 2010-10-8 16:56:00 | 显示全部楼层
tianyuan发表于2010-10-8 16:46:00不会用啊!
晕!不会Lisp吗?给你个简单函数示例:
  1. (defun c:tt()
  2. (setq en (car(entsel "\n选择要计算的曲线:")))
  3. (setq dist (getreal "\n距离起点的距离"))
  4. (setq pt (vlax-curve-getPointAtDist en dist))
  5. )
调用命令 tt

 楼主| 发表于 2010-10-9 08:36:00 | 显示全部楼层

不行啊.命令行有如下提示:“; 错误: no function definition: VLAX-CURVE-GETPOINTATDIST

发表于 2010-10-9 08:58:00 | 显示全部楼层
tianyuan发表于2010-10-9 8:36:00不行啊.命令行有如下提示:“; 错误: no function definition: VLAX-CURVE-GETPOINTATD

代码前添加如下语句:

(vl-load-com)

 楼主| 发表于 2010-10-9 09:36:00 | 显示全部楼层
好像是单个的计算一个坐标点的距离,能不能一次性导出pl线上的所有距离为20/30/40等等距离点的坐标值呢?
发表于 2010-10-9 14:03:00 | 显示全部楼层
  1. (defun c:tt(/ en d dist pt pts)
  2.   (vl-load-com)
  3. (setq en (car(entsel "\n选择要计算的曲线:")))
  4. (setq d (getreal "\n请输入间距:"))
  5.   (setq CurveLength (vlax-curve-getDistAtParam en (vlax-curve-getEndParam en)))
  6.   (setq dist d)
  7.   (while (< dist CurveLength)
  8.     (setq pt (vlax-curve-getPointAtDist en dist))
  9.     (setq pts (cons pt pts))
  10.     (setq dist (+ dist d))
  11.     )
  12.   pts
  13. )
 楼主| 发表于 2010-10-9 14:50:00 | 显示全部楼层

非常感谢Gu_xl。谢谢!!!

能不能在解决2个难题?1 是求得的坐标值全都是“(3.95928e+007 4.14819e+006 0.0)”格式,能不能变成数字格式去掉坐标值两侧的“()”且精度保留3位小数;第2个难题是能不能把坐标值全都存放到。 txt格式文件当中或xls格式文件当中,每一行只保留一个点的坐标值     再次感谢!!!!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-22 02:02 , Processed in 0.204871 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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