彩虹的微笑 发表于 2011-11-1 18:32:28

怎么保存尺寸的信息

    我想把尺寸保存到excel里,现在我知道怎么和excel进行数据交换,可是尺寸对象所提供的属性没有定位信息,怎么获得尺寸的定位信息,以便使用add方法重现该尺寸,请各位大侠指导!

cushi 发表于 2011-11-1 20:38:20

用vla-add方法所需点位置可用vla-get-property取得,但点位置要转换为浮点值才可保存为文本。注意有部分尺寸对象所需点多,要用entget取得定点位置,并按特定格式写入文本。在用vla-add方法重新创建后,再指定各辅助点位置。

彩虹的微笑 发表于 2011-11-2 20:16:09

cushi 发表于 2011-11-1 20:38 static/image/common/back.gif
用vla-add方法所需点位置可用vla-get-property取得,但点位置要转换为浮点值才可保存为文本。注意有部分尺寸 ...

你说的是不是用尺寸的属性,还是别的方法?
能不能附一点程序,我不太明白

cushi 发表于 2011-11-2 21:13:44

特性值,比如说下面的半径标注尺寸:
;特性值:
;   AltRoundDistance = 0.0
;   AltSuppressLeadingZeros = 0
;   AltSuppressTrailingZeros = 0
;   AltSuppressZeroFeet = -1
;   AltSuppressZeroInches = -1
;   AltTextPrefix = ""
;   AltTextSuffix = ""
;   AltTolerancePrecision = 3
;   AltToleranceSuppressLeadingZeros = 0
;   AltToleranceSuppressTrailingZeros = 0
;   AltToleranceSuppressZeroFeet = -1
;   AltToleranceSuppressZeroInches = -1
;   AltUnits = 0
;   AltUnitsFormat = 2
;   AltUnitsPrecision = 3
;   AltUnitsScale = 0.0393701
;   Application (RO) = #<VLA-OBJECT IAcadApplication 00b5e51c>
;   ArrowheadBlock = "ClosedBlank"
;   ArrowheadSize = 2.0
;   ArrowheadType = 1
;   CenterMarkSize = 0.0
;   CenterType = 2
;   DecimalSeparator = "."
;   DimensionLineColor = 256
;   DimensionLineWeight = -1
;   DimLineSuppress = 0
;   Document (RO) = #<VLA-OBJECT IAcadDocument 0540ecf0>
;   Fit = 0
;   ForceLineInside = 0
;   FractionFormat = 0
;   Handle (RO) = "58E7DA"
;   HasExtensionDictionary (RO) = 0
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 035b2e04>
;   Layer = "DIM"
;   LeaderLength (RO) = ...不显示带索引的内容...
;   LinearScaleFactor = 1.0
;   Linetype = "ByLayer"
;   LinetypeScale = 1.0
;   Lineweight = -1
;   Measurement (RO) = 0.5
;   Normal = (0.0 0.0 1.0)
;   ObjectID (RO) = 2125083856
;   ObjectName (RO) = "AcDbRadialDimension"
;   OwnerID (RO) = 2130103312
;   PlotStyleName = "ByLayer"
;   PrimaryUnitsPrecision = 3
;   Rotation = 0.0
;   RoundDistance = 0.0
;   ScaleFactor = 1.0
;   StyleName = "Gadim$4"
;   SuppressLeadingZeros = 0
;   SuppressTrailingZeros = 0
;   SuppressZeroFeet = 0
;   SuppressZeroInches = 0
;   TextColor = 256
;   TextGap = 1.0
;   TextHeight = 2.5
;   TextInside = 0
;   TextInsideAlign = 0
;   TextMovement = 1
;   TextOutsideAlign = -1
;   TextOverride = ""
;   TextPosition = (37069.0 -900.131 0.0)
;   TextPrefix = "3-R"
;   TextRotation = 0.0
;   TextStyle = "Gatxt"
;   TextSuffix = ""
;   ToleranceDisplay = 0
;   ToleranceHeightScale = 1.0
;   ToleranceJustification = 0
;   ToleranceLowerLimit = 0.0
;   TolerancePrecision = 3
;   ToleranceSuppressLeadingZeros = 0
;   ToleranceSuppressTrailingZeros = -1
;   ToleranceSuppressZeroFeet = -1
;   ToleranceSuppressZeroInches = -1
;   ToleranceUpperLimit = 0.0
;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 035b2280>
;   UnitsFormat = 2
;   VerticalTextPosition = 0
;   Visible = -1
用“vla-get-特性”可以取对应值。

彩虹的微笑 发表于 2011-11-3 20:59:13

cushi 发表于 2011-11-2 21:13 static/image/common/back.gif
特性值,比如说下面的半径标注尺寸:
;特性值:
;   AltRoundDistance = 0.0


正如这个直径标注的例子,虽然可以获得上述的属性,但是直径标注的添加方法
AddDimDiametric(ChordPoint, FarChordPoint, LeaderLength)
这个函数需要直径上的两个点,但是属性里面没有这两个点,只有textposition

ChordPoint

Variant[变体] (三元素双精度数组); 仅用于输入
指定圆或圆弧上第一个直径点的三维WCS坐标。

FarChordPoint

Variant[变体] (三元素双精度数组); 仅用于输入
指定圆或圆弧上第二个直径点的三维WCS坐标。

LeaderLength

Double[双精度]; 仅用于输入
正值代表从 ChordPoint 到注解文字或折线处的长度。

cushi 发表于 2011-11-3 22:16:04

这个需要用到entget函数,取对应的点

彩虹的微笑 发表于 2011-11-3 22:18:15

cushi 发表于 2011-11-3 22:16 static/image/common/back.gif
这个需要用到entget函数,取对应的点

这个是lisp么
我没有用过
能给段源程序么

cushi 发表于 2011-11-3 22:22:50

(entget (car (entsel)))选任意对象都有该对象的参数显示,所包含的意义在“开发者帮助”里有说明。

彩虹的微笑 发表于 2011-11-3 22:23:50

cushi 发表于 2011-11-3 22:22 static/image/common/back.gif
(entget (car (entsel)))选任意对象都有该对象的参数显示,所包含的意义在“开发者帮助”里有说明。

那我看看 谢谢

彩虹的微笑 发表于 2011-11-4 21:55:54

cushi 发表于 2011-11-3 22:22 static/image/common/back.gif
(entget (car (entsel)))选任意对象都有该对象的参数显示,所包含的意义在“开发者帮助”里有说明。

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=66847
页: [1]
查看完整版本: 怎么保存尺寸的信息