乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 10|回复: 10

[编程交流] 管道起点和终点

[复制链接]

3

主题

18

帖子

15

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:37:19 | 显示全部楼层 |阅读模式
需要一些帮助。我试图获取管道的起点/终点,我可以获取vla对象信息,但我做不到,从中拉出NEZ。
 
  1. (setq endpoint  (vlax-get-property item 'EndPoint))

 
任何和所有的帮助都将是伟大的!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 22:47:21 | 显示全部楼层
将vl pt转换为正常pt
 
  1. (setq pointl (vlax-safearray->list (vlax-variant-value endpoint)) )
  2. (setq x (car point1))
  3. (setq y (cadr point1))
  4. (setq z (caddr point1))
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 22:49:41 | 显示全部楼层
我的提议。
 
  1. (mapcar 'set '(x y z) (vlax-get item 'endpoint))
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 22:59:56 | 显示全部楼层
vlax get很有趣,但为什么不在2007年的开发文档中呢?
 
所以,我试着递归&它奏效了
(vlax put项的端点(列表x y x))
它比(vla put endpoint item(vlax-3d-point(list x y x))简单)
 
非常感谢。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 23:05:42 | 显示全部楼层
 
不过,它甚至没有出现在任何最新版本中。
 
 
不客气。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:08:19 | 显示全部楼层
观看X Y Z
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:17:54 | 显示全部楼层
哎呀。。打字错误
(列表x y x)-->(列表x y z)
谢谢你,比尔。祝你今天愉快
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 23:22:59 | 显示全部楼层
我相信OP正在尝试使用AECCIPE对象。以上方法适用于直线、圆弧等。但遗憾的是,它们不适用于AECCIPE对象。
 
线的起点和终点是#,它与vlax get和vlax put一起工作。
 
另一方面,AECCIPE的起点和终点是#。
 
我能够检索AECCIPE的起点和终点的唯一方法是使用以下代码:
 
  1. (setq p0 (vlax-safearray->list (vlax-variant-value (vlax-get-property pipe 'PointAtParam 0)))) ;For the startpoint
  2. (setq p1 (vlax-safearray->list (vlax-variant-value (vlax-get-property pipe 'PointAtParam 1)))) ;For the endpoint

 
要设置起点和终点的值,请使用:
 
  1. (vlax-invoke-method pipe 'SetStartAndEndPoints (vlax-3d-point p0)(vlax-3d-point p1))

 
(p0和p1的值当然是XYZ的列表。)
 
请注意,起点和终点是管道的中心。要获得管道的反向高程,需要检索InnerDiameterWidth属性并进行一些数学计算。
 
当做
 
hippe013
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 23:27:54 | 显示全部楼层
 
你好
 
难道这根本不会被使用并且比那更简单吗?
 
  1. (vlax-curve-getpointatparam pipe 0)
  2. (vlax-curve-getpointatparam pipe 1)

 
或者以此作为起点和终点的列表。
 
  1. (mapcar '(lambda (i) (vlax-curve-getpointatparam pipe i)) '(0 1))
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 23:37:21 | 显示全部楼层
vlax curve getPointAtParam用于AECCIPE对象时,返回零作为参数时的点(0 0 0),以及一作为参数时的点(0 0 1)。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 06:11 , Processed in 1.055662 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表