Kowal 发表于 2022-7-5 16:19:26

[Civil 3D]如何获得面积o

如何获得材料截面面积
材质截面是仅存在于Civil 3D中的对象。
我正在使用以下工具寻找房产:
(defun c:prop (/ p1 p2)
(vl-load-com)
(setq p1 (vlax-ename->vla-object (car (entsel))))
(setq p2 (vlax-get-property p1 "Parent"))
....
(vlax-dump-object p2 'T)
(princ)
)
我找不到这个地方。
属性将显示在窗口中。
这如图所示。

BIGAL 发表于 2022-7-5 16:41:57

一些事情,如面积的计算,它可能是使用顶点计算出面积。垃圾堆里有“坐标”吗?

Kowal 发表于 2022-7-5 16:44:31

我找不到有关面积或坐标的信息。
我看起来很好。
你有一些想法。
(setq obj (vlax-Ename->Vla-Object (car (entsel))))
(vlax-dump-object obj 'T)
回来
 
; 属性值:
;   应用(RO)=#
;   数据类型=5
;   Description=“”
;   DisplayName(RO)=“SL集合-1-0+020.00-物料清单-(2)-地面填充(181)”
;   文件(RO)=#
;   高程最大值(RO)=112.042
;   标高最小值(RO)=104.316
;   EntityTransparency=“ByLayer”
;   手柄(RO)=“6692”
;   HasExtensionDictionary(RO)=0
;   超链接(RO)=#
;   标签组(RO)=。。。未显示索引内容。。。
;   图层=“C-ROAD-SHAP”
;   长度左(RO)=-34.7016
;   长度(RO)=14.3699
;   线型=“ByLayer”
;   线型比例=1.0
;   线宽=-1
;   链路(RO)=#
;   MappingName(RO)=“材料清单-(2)”
;   材料=“ByLayer”
;   材料名称(RO)=“地面填充”
;   Name=“SL集合-1-0+020.00-材料清单-(2)-地面填充(181)”
;   目标ID(RO)=43
;   目标32(RO)=43
;   ObjectName(RO)=“AeccDbMaterialSection”
;   所有者ID(RO)=78
;   所有者32(RO)=78
;   父(RO)=#
;   PlotStyleName=“ByLayer”
;   ShowToolTip=-1
;   静态-动态=1
;   站点(RO)=20.0
;   风格=Civil 3D API:Taki interfejs nie jest obsługiwany。
;   StyleName(RO)=“填充材料”
;   表面(RO)=零
;   真彩色=#
;   可见=-1
; 支持的方法:
;   ArrayPolar(3)
;   阵列直角(6)
;   复制()
;   删除()
;   高程(1)
;   GetBoundingBox(2)
;   GetExtensionDictionary()
;   获取扩展数据(3)
;   突出显示(1)
;   与(2)相交
;   IsReferenceObject()
;   IsReferenceStale()
;   IsReferenceSubObject()
;   IsReferenceValid()
;   镜子(2)
;   镜像3D(3)
;   移动(2)
;   旋转(2)
;   旋转3d(3)
;   标度(2)
;   设置扩展数据(2)
;   TransformBy(1)
;   更新()
 
(setq obj (vlax-Ename->Vla-Object (car (entsel))))
(setq e1 (vlax-get-property obj "Parent"))
(vlax-dump-object e1 'T)
回来
 
; 属性值:
;   应用(RO)=#
;   Description=“”
;   显示名称(RO)=“0+020.00”
;   文件(RO)=#
;   EntityTransparency=“ByLayer”
;   手柄(RO)=“65DE”
;   HasExtensionDictionary(RO)=0
;   超链接(RO)=#
;   标签样式=Wystąpiłwyjątek
;   Layer=“C-ROAD-SAMP”
;   线型=“ByLayer”
;   线型比例=1.0
;   线宽=-1
;   锁定站=-1
;   材料=“ByLayer”
;   Name=“0+020.00”
;   目标ID(RO)=86
;   目标32(RO)=86
;   ObjectName(RO)=“AeccDbSampleLine”
;   所有者ID(RO)=78
;   所有者32(RO)=78
;   父(RO)=#
;   PlotStyleName=“ByLayer”
;   截面(RO)=#
;   剖视图(RO)=#
;   ShowToolTip=-1
;   桩号=20.0
;   样式=#
;   StyleName(RO)=“道路采样线”
;   真彩色=#
;   顶点(RO)=#
;   可见=-1
; 支持的方法:
;   ArrayPolar(3)
;   阵列直角(6)
;   复制()
;   删除()
;   GetBoundingBox(2)
;   GetExtensionDictionary()
;   获取扩展数据(3)
;   突出显示(1)
;   与(2)相交
;   IsReferenceObject()
;   IsReferenceStale()
;   IsReferenceSubObject()
;   IsReferenceValid()
;   镜子(2)
;   镜像3D(3)
;   移动(2)
;   旋转(2)
;   旋转3d(3)
;   标度(2)
;   设置扩展数据(2)
;   TransformBy(1)
;   更新()
 
(setq obj (vlax-Ename->Vla-Object (car (entsel))))
(setq e1 (vlax-get-property obj "Parent"))
(setq e2 (vlax-get-property e1 "Vertices"))
(vlax-dump-object e2 'T)
回来
 
; 属性值:
;   计数(RO)=2
;   CountLeft(RO)=1
;   CountRight(RO)=1
; 支持的方法:
;   添加(3)
;   插入(4)
;   项目(1)
;   删除(1)

Kowal 发表于 2022-7-5 16:59:25

我刚找到坐标
setq obj (vlax-Ename->Vla-Object (car (entsel))))
(setq e1 (vlax-get-property obj "Parent"))
(setq e2 (vlax-get-property e1 "Parent"))
(setq e3 (vlax-get-property e2 "Parent"))
(print (vlax-get (vlax-invoke-method e3 'GetLWPolyline) 'Coordinates))
 
回来
(6742.69 3985.73 6889.64 4121.41)

Kowal 发表于 2022-7-5 17:10:59

这是一个基本属性,为什么它如此隐藏。

Kowal 发表于 2022-7-5 17:20:41

无法从材料部分读取区域
(dumpallproperties (car (entsel)))
 
选择对象:开始转储对象(类:AeccDbMaterialSection)
面积(类型:double)=无法获取值
注释性(类型:bool)(LocalName:Annotative)=无法获取值
AnnotativeScale(类型:AcString)(RO)(本地名称:AnnotativeScale)=无法获取值
面积(类型:双)(RO)(本地名称:面积)=0.000000
块ID(类型:AcDbObjectId)(RO)=7ffffb039f0
CastShadows(类型:bool)=1
类名(类型:AcString)(RO)=
Closed(type:bool)(RO)(LocalName:Closed)=无法获取值
碰撞类型(类型:AcDb::碰撞类型)(RO)=1
颜色(类型:AcCmColor)(本地名称:Color)=BYLAYER
EndParam(类型:double)(RO)=1.000000
端点/X(类型:double)(RO)(本地名称:End X)=0.000000
端点/Y(类型:双精度)(RO)(本地名称:End Y)=0.000000
端点/Z(类型:双精度)(RO)(本地名称:End Z)=1.000000
ExtensionDictionary(类型:AcDbObjectId)(RO)=0
手柄(类型:AcDbHandle)(RO)=6690
HasFields(类型:bool)(RO)=0
HasSaveVersionOverride(类型:bool)=0
超链接(类型:AcDbHyperlink*)
IsA(类型:AcRxClass*)(RO)=AeccDbMaterialSection
IsAProxy(类型:bool)(RO)=0
IsCanceling(类型:bool)(RO)=0
IsEraseStatusToggled(类型:bool)(RO)=0
IsErased(类型:bool)(RO)=0
IsModified(type:bool)(RO)=0
IsModifiedGraphics(类型:bool)(RO)=0
IsModifiedXData(类型:bool)(RO)=0
IsNewObject(类型:bool)(RO)=0
IsNotifyEnabled(类型:bool)(RO)=0
IsNotifying(类型:bool)(RO)=0
等深线流入(类型:bool)(RO)=0
i周期(类型:bool)(RO)=0
IsPersistent(类型:bool)(RO)=1
平面(类型:bool)(RO)=1
IsReadEnabled(类型:bool)(RO)=1
IsReallyClosing(类型:bool)(RO)=1
IsTransactionResident(类型:bool)(RO)=0
IsUndoing(类型:bool)(RO)=0
IsWriteEnabled(类型:bool)(RO)=0
LayerId(类型:AcDbObjectId)(本地名称:Layer)=7ffffb05960
线宽(类型:AcDb::线宽)(本地名称:线宽)=-1
线型ID(类型:AcDbObjectId)(本地名称:线型)=7ffffb03950
线型比例(类型:double)(本地名称:线型比例)=1.000000
本地化名称(类型:AcString)(RO)=
MaterialId(类型:AcDbObjectId)(本地名称:Material)=7ffffb064c0
合并样式(类型:AcDb::DuplicateRecordCloning)(RO)=1
ObjectId(类型:AcDbObjectId)(RO)=7ffffb2f480
所有者ID(类型:AcDbObjectId)(RO)=7ffffb039f0
PlotStyleName(类型:AcString)(本地名称:打印样式)=ByLayer
接收阴影(类型:bool)=1
ShadowDisplay(类型:AcDb::ShadowFlags)(RO)(本地名称:Shadow Display)=无法获取值
启动图(类型:双)(RO)=0.000000
StartPoint/X(类型:double)(RO)(本地名称:Start X)=0.000000
起始点/Y(类型:双精度)(RO)(本地名称:起始Y)=0.000000
起始点/Z(类型:双精度)(RO)(本地名称:起始Z)=0.000000
透明度(类型:AcCmTransparency)(本地名称:Transparency)=0
可见(类型:AcDb::可见性)=0
结束对象转储
页: [1]
查看完整版本: [Civil 3D]如何获得面积o