找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1764|回复: 12

将任意line转三维并平移到WCS原点进行拉伸

[复制链接]

已领礼包: 5个

财富等级: 恭喜发财

发表于 2016-8-31 16:07:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
最近想实现以下功能,将曲线(如图所示lwpolyline或者polyline),当前的(x,y),转换为(xx,x,y)其中xx就是需要拉伸的方向,5根曲线,从上到下依次拉伸到(xx=-5000 15000 25000 36000 56000).不知道应该怎么写这个程序,还望各位不吝赐教。最终的效果是三维线型原点是WCS中的原点,而非UCS的原点。谢谢

线型

线型

line.rar

147.64 KB, 下载次数: 16, 下载积分: D豆 -1 , 活跃度 1

cad图

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-9-1 00:37:21 | 显示全部楼层
没太看明白你说的。

点评

嗯,可能表述不清楚吧。当前视图上曲线的点坐标(x,y)想提出出来,然后把这个点的坐标变成三维的,原来的(X,y)是现在的横坐标和垂向坐标了。而纵向坐标是用户输入的或者读取某列数组(xx=-5000 15000 25000 36000  详情 回复 发表于 2016-9-1 14:21
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5个

财富等级: 恭喜发财

 楼主| 发表于 2016-9-1 14:21:09 | 显示全部楼层
newer 发表于 2016-9-1 00:37
没太看明白你说的。

嗯,可能表述不清楚吧。当前视图上曲线的点坐标(x,y)想提出出来,然后把这个点的坐标变成三维的,原来的(X,y)是现在的横坐标和垂向坐标了。而纵向坐标是用户输入的或者读取某列数组(xx=-5000 15000 25000 36000 56000)。不知道怎么实现啊,现在lwpolyline只有二维信息

点评

你的意思是XY不变,就添加一个Z坐标吗? 所有的顶点都增加吗? LWPOLYLINE不行了,应该变成3DPOLYLINE了。  详情 回复 发表于 2016-9-1 14:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-9-1 14:28:55 | 显示全部楼层
二哈哈和二哈 发表于 2016-9-1 14:21
嗯,可能表述不清楚吧。当前视图上曲线的点坐标(x,y)想提出出来,然后把这个点的坐标变成三维的,原来 ...

你的意思是XY不变,就添加一个Z坐标吗? 所有的顶点都增加吗? LWPOLYLINE不行了,应该变成3DPOLYLINE了。

点评

是的,每根曲线的Z坐标一样,分别为(z=-5000 15000 25000 36000 56000)。然后把这些变换以后的曲线移动到WCS原点坐标系统并呈现出来  详情 回复 发表于 2016-9-1 14:32
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5个

财富等级: 恭喜发财

 楼主| 发表于 2016-9-1 14:32:26 | 显示全部楼层
Lisphk 发表于 2016-9-1 14:28
你的意思是XY不变,就添加一个Z坐标吗? 所有的顶点都增加吗? LWPOLYLINE不行了,应该变成3DPOLYLINE了 ...

是的,每根曲线的Z坐标一样,分别为(z=-5000 15000 25000 36000 56000)。然后把这些变换以后的曲线移动到WCS原点坐标系统并呈现出来

点评

移动到WCS? 现在的曲线不就是在WCS吗? 你意思是曲线的一个端点的坐标变成(0,0,z) ?  详情 回复 发表于 2016-9-1 14:41
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-9-1 14:41:22 | 显示全部楼层
二哈哈和二哈 发表于 2016-9-1 14:32
是的,每根曲线的Z坐标一样,分别为(z=-5000 15000 25000 36000 56000)。然后把这些变换以后的曲线移动 ...

移动到WCS? 现在的曲线不就是在WCS吗? 你意思是曲线的一个端点的坐标变成(0,0,z) ?

点评

嗯,对的大概是这样子  详情 回复 发表于 2016-9-1 14:49
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5个

财富等级: 恭喜发财

 楼主| 发表于 2016-9-1 14:49:39 | 显示全部楼层
Lisphk 发表于 2016-9-1 14:41
移动到WCS? 现在的曲线不就是在WCS吗? 你意思是曲线的一个端点的坐标变成(0,0,z) ?

嗯,对的大概是这样子
1.png

点评

下面代码在晓东工具箱或者 XDRX API 环境下运行 程序把你选择的多段线Z值加上 '(-5000 15000 25000 36000 56000),并移动到原点(0 0 Z1)  详情 回复 发表于 2016-9-1 15:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-9-1 15:19:27 | 显示全部楼层
二哈哈和二哈 发表于 2016-9-1 14:49
嗯,对的大概是这样子

下面代码在晓东工具箱或者 XDRX API 环境下运行

程序把你选择的多段线Z值加上 '(-5000 15000 25000 36000 56000),并移动到原点(0 0 Z1)

  1. (defun c:tt()
  2.    (if (setq e (car (xdrx_entsel "\n拾取多段线<退出>" '((0 . "*POLYLINE")))))
  3.      (progn
  4.         (xdrx_begin)
  5.         (xdrx_sysvar_push '("osmode" 0))
  6.         (xdrx_polyline_convertfrom e)
  7.         (setq pts (xdrx_getpropertyvalue e "vertices"))
  8.         (setq a '(-5000 15000 25000 36000 56000))
  9.         (setq a (XD::List:FillGap a 0.0 (length pts)))
  10.         (setq pts (mapcar '(lambda(x y)(list (car x)(cadr x) (+ (caddr x) y))) pts a))
  11.         (apply 'command (cons "3dpoly" pts))
  12.         (command "")
  13.         (xdrx_entity_move (entlast) (car pts) (list 0 0 (last (car pts))))
  14.         (xdrx_entity_setpropertiesfrom (entlast) e)
  15.         (xdrx_entity_delete e)   
  16.         (xdrx_sysvar_pop)
  17.         (xdrx_end)
  18.      )
  19.    )
  20.    (princ)
  21. )


点评

大神,我的线型是lwpolyline的,用你给出的程序,只能移动一小段曲线或者点。不知道后续怎么操作了  详情 回复 发表于 2016-9-1 15:35
谢谢热心帮助,我看看  详情 回复 发表于 2016-9-1 15:26
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5个

财富等级: 恭喜发财

 楼主| 发表于 2016-9-1 15:26:00 | 显示全部楼层
newer 发表于 2016-9-1 15:19
下面代码在晓东工具箱或者 XDRX API 环境下运行

程序把你选择的多段线Z值加上 '(-5000 15000 25000 36 ...

谢谢热心帮助,我看看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5个

财富等级: 恭喜发财

 楼主| 发表于 2016-9-1 15:35:15 | 显示全部楼层
本帖最后由 二哈哈和二哈 于 2016-9-1 15:38 编辑
newer 发表于 2016-9-1 15:19
下面代码在晓东工具箱或者 XDRX API 环境下运行

程序把你选择的多段线Z值加上 '(-5000 15000 25000 36 ...

大神,我的线型是lwpolyline的,用你给出的程序,只能移动一小段曲线或者点(如图所示)。不知道后续怎么操作了。额,是版主啊,劳你大驾,谢谢
2.png

点评

程序是单选,只要是一根都能做, 你是说你想一次操作多条LWPOLYLINE?  详情 回复 发表于 2016-9-1 15:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-9-1 15:46:33 | 显示全部楼层
二哈哈和二哈 发表于 2016-9-1 15:35
大神,我的线型是lwpolyline的,用你给出的程序,只能移动一小段曲线或者点(如图所示)。不知道后续怎么 ...

程序是单选,只要是一根都能做, 你是说你想一次操作多条LWPOLYLINE?

点评

现在我是单选了那条曲线,但是指过去了一个点。我最开头帖子里面附件有cad文件,您可以打开看看。谢谢。另外程序里面的xdrx_前缀的函数在哪儿查啊,不太清楚是什么功能或者他们的开源代码?  详情 回复 发表于 2016-9-1 15:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5个

财富等级: 恭喜发财

 楼主| 发表于 2016-9-1 15:58:49 | 显示全部楼层
newer 发表于 2016-9-1 15:46
程序是单选,只要是一根都能做, 你是说你想一次操作多条LWPOLYLINE?

现在我是单选了那条曲线,但是指过去了一个点。我最开头帖子里面附件有cad文件,您可以打开看看。谢谢。另外程序里面的xdrx_前缀的函数在哪儿查啊,不太清楚是什么功能或者他们的开源代码?

点评

http://bbs.xdcad.net/thread-668896-1-1.html 里面有手册下载。  详情 回复 发表于 2016-9-1 16:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-9-1 16:14:36 | 显示全部楼层
二哈哈和二哈 发表于 2016-9-1 15:58
现在我是单选了那条曲线,但是指过去了一个点。我最开头帖子里面附件有cad文件,您可以打开看看。谢谢。 ...

http://bbs.xdcad.net/thread-668896-1-1.html

里面有手册下载。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 21:26 , Processed in 0.410048 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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