明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 454|回复: 5

拉伸实体的高度参数在VB中可以查询和修改吗?

[复制链接]
发表于 2020-12-19 13:05 | 显示全部楼层 |阅读模式
想用VB做一个小软件统计各种管的长度,管的截面有各种各样的,都是通过面域拉伸生成的。编程过程中发现好像“3Dsolid”实体只能查询到“SolidType”属性,ActiveX好像没有提供“拉伸长度”对应的属性,所以就卡在这个环节。
请教各位大神在VB中是否有办法查询(更改)这种拉伸形成的实体的拉伸长度?

如果VB中无法实现能不能做一个ARX或者DLL,然后在VB中引用?
附送上CAD中图形的截图。。

本帖子中包含更多资源

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

x
 楼主| 发表于 2020-12-19 13:06 | 显示全部楼层
忘记说了,目前在用CAD 2019版本
发表于 2020-12-21 14:05 | 显示全部楼层
ACAD没做过,MS中做过类似的操作,从mesh三角网构成的模型逆向回原来的模型,只有所有的点坐标,根本就没有什么高度截面等信息。在MS中我是先把这个型材树起来,然后用最小包围圈获得高度。不知道你能不能在ACAD中同样实现。效果供参考:
链接: https://pan.baidu.com/s/17qkCdO_NVyoq1SmLH8iBRg 提取码: cz4d
 楼主| 发表于 2020-12-21 14:31 | 显示全部楼层
mikewolf2k 发表于 2020-12-21 14:05
ACAD没做过,MS中做过类似的操作,从mesh三角网构成的模型逆向回原来的模型,只有所有的点坐标,根本就没有 ...

也是一个方法,但不是很直接,而且不能编辑
发表于 2020-12-25 19:59 | 显示全部楼层
我想做一个通过一条线扫掠的一条管道,为什么用RetVal = object.AddExtrudedSolidAlongPath(Profile, Path)

这个方法创建不成功呢?我看了示例,示例也是创建不成功,不知道大哥知道是什么原因吗?
提示如下:





自带的参考文件里面的示例如下:

  1. Sub Example_AddExtrudedSolidAlongPath()
  2.     ' 该示例将面域沿样条曲线所定义的路径拉伸成实体。
  3.     ' 面域是由圆弧和直线创建的。
  4.    
  5.     Dim curves(0 To 1) As AcadEntity

  6.     ' 定义圆弧
  7.     Dim centerPoint(0 To 2) As Double
  8.     Dim radius As Double
  9.     Dim startAngle As Double
  10.     Dim endAngle As Double
  11.     centerPoint(0) = 5#: centerPoint(1) = 3#: centerPoint(2) = 0#
  12.     radius = 2#
  13.     startAngle = 0
  14.     endAngle = 3.141592
  15.     Set curves(0) = ThisDrawing.ModelSpace.AddArc(centerPoint, radius, startAngle, endAngle)
  16.    
  17.     ' 定义线
  18.     Set curves(1) = ThisDrawing.ModelSpace.AddLine(curves(0).startPoint, curves(0).endPoint)
  19.         
  20.     ' 创建面域
  21.     Dim regionObj As Variant
  22.     regionObj = ThisDrawing.ModelSpace.AddRegion(curves)
  23.    
  24.     ' 定义拉伸路径(样条曲线对象)
  25.     Dim splineObj As AcadSpline
  26.     Dim startTan(0 To 2) As Double
  27.     Dim endTan(0 To 2) As Double
  28.     Dim fitPoints(0 To 8) As Double
  29.    
  30.     ' 定义样条曲线对象
  31.     startTan(0) = 10: startTan(1) = 10: startTan(2) = 10
  32.     endTan(0) = 10: endTan(1) = 10: endTan(2) = 10
  33.     fitPoints(0) = 0: fitPoints(1) = 10: fitPoints(2) = 10
  34.     fitPoints(0) = 10: fitPoints(1) = 10: fitPoints(2) = 10
  35.     fitPoints(0) = 15: fitPoints(1) = 10: fitPoints(2) = 10
  36.     Set splineObj = ThisDrawing.ModelSpace.AddSpline(fitPoints, startTan, endTan)
  37.    
  38.     ' 创建实体
  39.     Dim solidObj As Acad3DSolid
  40.     Set solidObj = ThisDrawing.ModelSpace.AddExtrudedSolidAlongPath(regionObj(0), splineObj)
  41.     ZoomAll
  42.    
  43. End Sub




 楼主| 发表于 2020-12-28 11:21 | 显示全部楼层
本帖最后由 杨坚。 于 2020-12-28 11:23 编辑
672277923 发表于 2020-12-25 19:59
我想做一个通过一条线扫掠的一条管道,为什么用RetVal = object.AddExtrudedSolidAlongPath(Profile, Path) ...

面域和空间曲线都创建成功了,手动操作扫掠命令是发现还是不能创建实体。后来网上查了一下,可能的原因是扫掠面域的半径大于扫掠路径的最小半径导致实体创建不成功。
应该改变一下扫掠路径或者面域的参数是可以的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 06:12 , Processed in 0.247590 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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