乐筑天下

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

[编程交流] 循环通过多段线

[复制链接]

35

主题

97

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 06:52:27 | 显示全部楼层 |阅读模式
我有一张有数千条多段线的画。它们都有一个“Height”属性(我刚才用一些import命令添加了这个属性)。现在我需要一个小过程来获取“Height”属性中的值,并将其放入“Elevation”属性中。
我不知道从哪里开始。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 06:55:52 | 显示全部楼层
我不知道ab“高度”属性。。。也许你在想ab“厚度”。。。
回复

使用道具 举报

35

主题

97

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 07:02:07 | 显示全部楼层
不,它绝对是“高度”。这是一个自定义属性,我自己添加的。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:02:51 | 显示全部楼层
如果不是关于特定于Civil 3D图元的特性,而是厚度(如Marko首先观察到的)和高程特性,则这些特性分别存储在DXF代码39下,38存储在图元的关联列表中。那就必须
回复

使用道具 举报

35

主题

97

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 07:06:25 | 显示全部楼层
@MSasu,我不明白你刚才说的话。。。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:10:49 | 显示全部楼层
为了明确起见,任何实体都作为特征列表存储在图形数据库中,称为关联列表,其中数据按键和值对/集排序;这些键被命名为DXF代码。
 
我注意到你说前面提到的Height属性是一个自定义属性。定义/添加时,您是如何进行的?
回复

使用道具 举报

35

主题

97

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 07:12:32 | 显示全部楼层
MAPIMPORT
选择shp文件
单击“数据”列中的“速度”按钮
单击“创建对象数据”
单击“选择字段…”。。。
取消选中除“高度”之外的所有选项
单击“确定”
单击“确定”
 
结果是:数千条多段线,每条都具有高度特性。
现在,如何将height属性的值转换为elevation属性?
 
075232fh77kmho4yopp812.jpg
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:16:34 | 显示全部楼层
所以,这是关于Civil 3D pack的特定内容。
你能在这里加载下面返回的代码吗?将其粘贴到命令行中,然后选择其中一条多段线,最好使用少量顶点:
  1. (entget (car (entsel)))
回复

使用道具 举报

35

主题

97

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 07:19:47 | 显示全部楼层
选择对象:(-1。)(0.“LW多段线”)(5。
“E9CC”)(102(102 .
"}") (330 . ) (100.“AcDbEntity”)(67.0)(410。
“模型”)(8.2628_浮雕10_LINE_2007_1”)(100。“AcDbPolyline”)(90.14)(70
. 0) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 28.7529 -26.0) (40 . 0.0) (41 . 0.0)
(42 . 0.0) (91 . 0) (10 28.7528 -26.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 .
0) (10 28.7526 -26.0001) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 28.7524
-26.0001) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 28.7521 -26.0) (40 .
0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 28.7519 -26.0) (40 . 0.0) (41 . 0.0)
(42 . 0.0) (91 . 0) (10 28.7517 -26.0001) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91
. 0) (10 28.7515 -26.0001) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10
28.7513 -26.0001) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 28.7513
-26.0002) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 28.7512 -26.0002) (40 .
0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 28.751 -26.0001) (40 . 0.0) (41 . 0.0)
(42 . 0.0) (91 . 0) (10 28.7508 -26.0001) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91
. 0) (10 28.7505 -26.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0
1.0))
 
我假设可以编写一个简单的LISP例程,该例程遍历所有多段线,获取高度属性,并更新高程属性。
唯一的问题是:我从未用LISP写过任何东西。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 07:23:32 | 显示全部楼层
看起来数据ab“高度”属性被隐藏。。。在上面发布的DXF代码中,我们看不到“LWPOLYLINE”实体的高度。。。所以,也许可以试试VLISP Activex。。。
 
  1. (vl-load-com)
  2. (setq pl (vlax-ename->vla-object (car (entsel))))
  3. (vlax-dump-object pl T)
在命令:提示符中逐行键入该命令,选择后面的多段线(setq pl(vlax ename->vla object(car(entsel)))并复制并粘贴最后一行的输出(vlax dump object pl T)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 14:54 , Processed in 0.488074 second(s), 74 queries .

© 2020-2025 乐筑天下

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