一、LSP新增函数:
, Z1 ^4 O4 d3 \1、计算从曲线开始到指定参数的长度vlax-curve-getDistAtParam
9 B; z: e/ g" J- O8 U# ^函数调用形式:
) K- \3 w5 h6 y- F6 C(vlax-curve-getDistAtParam curve-obj param) , T2 ^# a* G9 w6 S. d- s/ R
参数:
1 ?+ p2 B4 {" Z" ]7 l/ c- }curve-obj 类型:Ads_name 意义:实体 z% @- }0 p+ U
param 类型:正整数 意义:当前曲线的节点 ( \* j3 m6 J0 J
返回值:
2 M. b) B% P! i6 v# W( D如果成功返回从当前曲线的开始到指定节点的长度,否则返回nil & m4 K: x# u$ U* U" M5 K
' ~3 _- P# n5 N! K- i, J2、计算从曲线开始到指定点的长度vlax-curve- getDistAtPoint/ c. r5 A) u& P! \
函数调用形式:& U+ g5 T9 X1 E: A& ~
(vlax-curve-getDistAtPoint curve-obj point)
5 k6 X- \4 n; f( d0 U8 l参数:
( w- C2 E- c, ^. z4 _curve-obj 类型:Ads_name 意义:实体1 c5 D4 Z" B9 ~+ [( B# `# C1 Z* x
Point 类型:Ads_point 意义:当前指定点; R+ j3 P. N% y3 I" Z/ O; F7 g
返回值:, u, p. \) J# U8 S
如果成功返回从当前曲线的开始到指定点的长度,否则返回nil k" ^, v+ y2 H& l" B' v3 i8 A
$ k+ F( @# r" @+ H1 H+ g* j( `3、返回曲线最后节点数vlax-curve-getEndParam* |0 R/ y3 E% Y
函数调用形式:
* t o P" A* b(vlax-curve-getEndParam curve-obj) - }) g, z0 a9 E H; Q# I8 O6 z' C
参数:
6 q4 e$ Y# k6 F' {4 F( pcurve-obj 类型:Ads_name 意义:实体5 |2 b) J2 ~9 J7 B# Q! h- j1 R
返回值:4 J9 `2 ~ S$ u+ x$ @( ~. k7 U
如果成功返回当前曲线的最后节点数,否则返回nil
; ~: j% Y3 c2 V1 F! h# P% S
6 I3 C! N/ ^' ^& n* ^4、返回曲线最后节点值(WCS中)vlax-curve- getEndPoint
7 B! b2 M7 n$ X" _ B4 C9 y函数调用形式:
* p4 I a; A: W, V+ o(vlax-curve-getEndParam curve-obj) 5 w2 O3 ` O6 k3 }/ U; M2 M+ j
参数:
0 X1 Q. }& M* R9 x, Q; S8 zcurve-obj 类型:Ads_name 意义:实体
% O2 R4 e( \) }( A6 ?返回值:0 m; D4 P- ~% B" P7 |. W
如果成功返回当前曲线的最后节点值,否则返回nil
' y7 d1 h- T/ C0 C1 t' m
- |( B2 M/ k6 D2 K5、根据指定从曲线端点距离返回曲线上节点参数vlax-curve-getParamAtDist
& Z/ H% U7 a* |# j. F$ m函数调用形式:' s. W. i7 v1 g
(vlax-curve-getParamAtDist curve-obj dist) 2 [0 }- D- @1 W, C' \2 @6 p) k) H
参数:
4 ^6 `' X: R/ Qcurve-obj 类型:Ads_name 意义:实体! ^& Q/ \5 d# o5 e7 e+ r; m& { v
dist 类型:ads_real 意义:指定从曲线端点距离
s+ D7 C2 k* W# D* |0 k L返回值:
' |1 j4 a$ v0 V* F& n8 @! X) D' K如果成功根据指定从曲线端点距离返回曲线上节点参数,否则返回nil , e! a) S$ G* c' f& b2 L, N
5 X% z) y6 s5 \6 \& p6、根据指定曲线点返回曲线上节点参数vlax-curve-getParamAtPoint/ H4 w# P1 `; u; H
函数调用形式:# ~0 C$ m, \" x' N( X- v
(vlax-curve-getParamAtPoint curve-obj point)
6 T- {: @9 D/ g5 J参数:
' B/ S1 @" |8 Y$ C H- fcurve-obj 类型:Ads_name 意义:实体. @5 U* L. Q8 m. F( {8 V: x
point 类型:ads_point 意义:指定曲线点
% j( ?" j$ H# l* E% V- B& y返回值:& J) \7 C" e$ f$ c E# E* M
如果成功根据指定曲线点返回曲线上节点参数,否则返回nil
, O n4 D& W, Z& j
$ h% g* J! P9 d9 Z7、根据用户指定的距离返回曲线上点(在WCS中)vlax-curve-getPointAtDist
; g7 F" d5 p: x/ f; h8 e函数调用形式:3 R! Z$ f# T0 n, o9 _* e
(vlax-curve-getPointAtDist curve-obj dist) # P# L0 v0 N9 v) Z- T8 L0 C
参数:
0 `- V' Z1 p! D5 m' i" e8 Jcurve-obj 类型:Ads_name 意义:实体
: N& e6 A# Q+ w7 L4 c1 ndist 类型:ads_real 意义:指定从曲线端点距离2 L. R3 q6 W/ D. U
返回值:
8 r+ {. W5 F6 t8 l# R- M9 I" S如果成功根据指定从曲线端点距离返回曲线上点,否则返回nil
+ a. j6 h% ^! j* F- b$ K
( i( S' q/ e" s) j8、根据用户指定的节点参数返回曲线上点(在WCS中)vlax-curve-getPointAtParam
) s3 u9 Z( d: j* I6 l3 A% U0 {函数调用形式:
* n6 w8 u! M4 y: V" B(vlax-curve-getPointAtParam curve-obj param)
5 V; q/ c; B) {9 y( c6 H) m参数:1 h# K3 m& ]. i
curve-obj 类型:Ads_name 意义:实体- i: m/ j b3 P! s- F+ o+ X
param 类型:正整数 意义:当前曲线的节点 2 P' a2 o1 P' h. E* _' V, A2 _+ D. U
返回值:
* P4 W. v- G8 J& T$ A. E如果成功根据指定从曲线端点距离返回曲线上点,否则返回nil
# {9 n" z* Z {2 Q8 A
( A6 g5 F! z7 k) a" L6 ~9、返回曲线起始节点参数vlax-curve-getStartParam5 b/ Y' b9 k5 d) t$ `2 c
函数调用形式:
" F ^7 }) a, b$ M(vlax-curve-getStartParam curve-obj)
% W% q: g+ L0 q" A5 @/ f3 x! n参数:
" b+ R% f! [6 e7 V* jcurve-obj 类型:Ads_name 意义:实体$ l2 f) P6 ~" {4 o9 |- V0 o
返回值:- Y# E; Y2 t" l- L/ L- K
如果成功返回当前曲线的起始节点参数,否则返回nil , r* m* Q. O9 q& a! P6 A% L
9 l9 u! C) J" n% S3 ?10、返回曲线起始节点值(WCS中)vlax-curve- getStartPoint. P' E: {1 _# s+ K& T1 m1 `
函数调用形式:
1 E+ ~2 I* f; l- s$ g(vlax-curve-getStartParam curve-obj)
) m( Z* K' D7 H0 I+ R+ }* G! [参数:: n, W& U2 y2 c% H' Y8 E/ G, p
curve-obj 类型:Ads_name 意义:实体
" K: ~& S( N2 I) C+ Y* `返回值:
! ^ n, I2 H8 k0 i1 X) h) L0 J% v如果成功返回当前曲线的起始节点值,否则返回nil
% K( S+ J& R L+ e7 \( Z5 m6 k- G! K
- B8 X0 _! ]; b+ p
二、VBA新增对象
- ^6 d6 B s. v) e5 m: `; K3 f$ ^6 z1、IIcadPlotConfiguration对象
9 G7 {& U, \* \6 s4 B Y' ^! y* M) t属性:
) K5 x# P3 Z; @6 L) h8 yName:String 指定的对象名称
) | l3 I$ ?1 {! B0 k. P0 T; yCanonicalMediaName:String 指定的规格纸张名称
, Z0 M& [# Q. X& A$ Z2 UCenterPlot:BOOL 指定的居中方式
$ r/ {- }# }3 k% vConfigName:String 绘图区配置名称7 Y7 n$ X9 B$ B# Z* a" P
PaperUnits:IcPlotPaperUnits 显示版面或绘图区配置的单位
4 o" p% x+ l* |* }PlotHidden:BOOL 绘图过程中对象是否隐藏
7 C, H0 w. |) ?# ^+ T0 o; v, [PlotOrigin:IIcadPoint 版面坐标(WCS坐标系)
! ^) ?* G% Z# NPlotRotation IcPlotRotation 版面或绘图区配置的旋转角
, |% w. e) H( U, ?( \+ o VPlotType IcPlotType 版面或绘图区配置的类型9 Q! A" k7 d3 _- x/ B* O% l
PlotViewportBorders BOOL 是否绘制视口边界+ P; r1 c# O- s+ ]- V9 K B
PlotViewportsFirst BOOL 是否先绘制图纸空间的多边型视口5 e9 J# ?8 o. v. m
PlotWithLineweights BOOL 采用绘制文件的线宽,或采用图纸的线宽! H( t0 F+ B6 @( k
PlotWithPlotStyles BOOL采用绘制文件的线型,或采用图纸的线型' _1 z1 O) S2 g
ScaleLineweights BOOL 当绘制版面时是否几何缩放线宽: `0 e8 n& J: s D; d+ r
ShowPlotStyles BOOL 是否将绘制类型应用倒绘图+ t' V o! B* E9 T; j$ b) \' a" t1 }+ X
StandardScale IcPlotScale 版面或绘制配置的标准缩放
; g' e- H; t$ u9 aStyleSheet String 版面或绘制配置的类型单
3 ^* o% G& z, @, x/ e1 Y+ bUseStandardScale BOOL 绘制区采用标准缩放还是自定义缩放
{! w: j- B, h' s, I u% OViewToPlot String 绘图区的视图名称
/ X' ?4 h+ s+ z; Z方法:
. ?+ M5 S2 S( b取得绘图区视图的大小
7 C Z! ~( i# t, O3 ^HRESULT GetPaperSize([out] double* Width, [out] double* Height);
/ x2 E8 W8 K# P0 v# E! H
6 C* I `# m1 z- p% L取得绘图区版面窗口坐标
1 o: y& J, b9 p, dHRESULT GetWindowToPlot([out] IIcadPoint** ppLowerLeft, [out] IIcadPoint** ppUpperRight);
4 T; \! S7 V& Q7 H* i9 q; m. u/ ]# @ m' F6 `# \4 S& K
设置绘图区版面窗口坐标& a& a$ ~- d# k% S
HRESULT SetWindowToPlot([in] IIcadPoint* pLowerLeft, [in] IIcadPoint* pUpperRight);
# K7 Y( g+ F. r1 E: E: r8 \" X3 t( s6 v( |
设置自定义缩放值
1 y3 s" ^9 e% I6 NHRESULT SetCustomScale([in] double Numerator, [in] double Denominator);* }2 ]1 S6 J" l- W2 ?) J$ G1 @
3 ~0 J: O- ^9 ]4 K8 z取得自定义缩放值/ ^: |' a; J7 |" t
HRESULT GetCustomScale([out] double* pNumerator, [out] double* pDenominator);3 j$ Q; w: G2 H: t/ r
4 T( R' t8 s# i- C3 ?取得所有可用绘制驱动名称2 d/ X9 k8 c. ~6 ~& e) O
HRESULT GetPlotDeviceNames([out, retval] VARIANT* pArray);
# J8 u1 R9 y% |" N! ]
, R- U2 p' T6 P. p, C$ t7 u U3 z取得所有可用绘制类型表名称" [9 ?4 a' }, t& @) g7 L
HRESULT GetPlotStyleTableNames([out, retval] VARIANT* pArray);
0 Z3 H0 n4 t+ y/ H/ B/ O
! H8 s& _! ?5 }* D& x取得图纸边界外空白区大小/ o" p* g2 E2 q( c; ~ _/ ~) f
HRESULT GetPaperMargins([out] IIcadPoint** ppLowerLeft, [out] IIcadPoint** ppUpperRight);5 F, _0 q8 ]# X$ w$ X5 ?
9 {' G3 B! G6 P: }: D7 l8 l
复制指定的绘制配置; n L1 g* C) O% y- `
HRESULT CopyFrom([in] IIcadPlotConfiguration* pPlotConfig);
% L6 w0 i9 _0 l% @) L; f! `) N5 z: D! ~. O# Z
取得指定的绘制驱动的所有可用规范设备名称
+ P8 z5 v p1 ?( b: qHRESULT GetCanonicalMediaNames([out, retval] VARIANT* pArray);) k) g( t& C3 H3 I& B. n
6 H3 b) u: H/ O+ [0 k2 W9 I( g6 P9 p取得本地规范设备名称的版本& E; d+ ]0 q) Q3 l
HRESULT GetLocaleMediaName([out, retval] BSTR* pName);' T! Q3 I+ D5 X* l' |+ k
& i9 n' v. J3 O/ {; r
更新当前系统状态的绘制、规范设备、和绘制类型表信息" ^$ E1 b5 |' v0 P' l, e
HRESULT RefreshPlotDeviceInfo();
! w. G8 k( L' p/ w/ S( N
" l5 H7 O8 a$ f绘制配置是仅应用到模型空间还是所有版面
9 j2 y i5 M' wHRESULT ModelType([out, retval] VARIANT_BOOL* pVal);
% q$ N' g* M* W
. i; y# L0 O- H* L ^; J; W6 b2、 IIcadPlotConfigurations 对象
% y" {8 y& O' A$ \! r! M属性:
8 U' J$ X. e3 z B. v V: ZApplication IIcadApplication 取得应用程序对象
) q8 o; G6 Y- T; _! v- VCount long 取得包含条目数' [3 `1 B! r' E7 B2 x
Parent IIcadDocument 取得父文档对象
8 Q% a. N4 _( o; X B* A0 b, a. D方法:
8 F- }' R2 c8 r4 n! H增加一个新的绘制配置
' q) j5 N/ Y9 M. r; p2 k( F# PHRESULT Add ([in] BSTR Name, [out, retval] IIcadPlotConfiguration** ppItem);, M+ ?. s; Q z1 c& y; u
' H! R3 N% J0 d0 F4 {- t( m
取得指定的绘制配置4 M* z% Z% f% v5 t
HRESULT Item([in] VARIANT Index, [out, retval] IIcadPlotConfiguration** ppItem);, b7 n2 F9 J- z) ~' f7 ^
1 U) ^% H$ @% B7 F' u3、IIcadLayout
1 y' f3 Y, N/ t属性:5 e/ v' {8 ]% [# @
Block IIcadBlock 取得版面的联合块
1 C4 p4 U; J) H1 U# qTabOrder long 版面的tab顺序% t+ P+ h7 {- j. @! m; N9 B
" N. z7 [+ w) q5 \) T
4、IIcadLayouts 对象
. u' V$ E# C9 {. P6 e属性:
: M. ?% a, M. m6 V! |Application IIcadApplication取得应用程序对象
1 t X; _* ~$ e' fCoun long取得包含条目数; s8 U# w: d: s9 N- ?
Parent IIcadDocument 取得父文档对象) |& z" m# N4 v( x4 i9 E# B6 Z }* W
方法: U$ T/ `( ^( D) T( N9 B
增加一个新的版面/ U& J' j) @6 S3 a
HRESULT Add ([in] BSTR Name, [out, retval] IIcadLayout** ppItem);
! g. q1 \7 ^3 L$ t
/ ^. F) @6 Z( G Z( r4 h, B( g取得指定的版面# @+ j8 Q) {, E2 A
HRESULT Item([in] VARIANT Index, [out, retval] IIcadLayout** ppItem);$ U v' I U1 R o, J
$ G% H* J, Y$ g' a, Z0 ^) L7 m5、IIcadXRecord对象
1 ~0 g. X/ }, L& g+ d属性:
4 D5 J$ U5 n" R ]: qName:String 指定的对象名称
3 ^; ^4 t& a+ `: c+ Y9 ATranslateIDs BOOL 指定在深度克隆或写块克隆时是否转换对象ID# P) M% n" n0 t' e2 |9 Y
方法:
) G5 n7 c) V! G7 e3 [- I2 s取得联合字典的扩展数据
4 _6 e0 h$ @- @4 xHRESULT GetXRecordData([out] VARIANT* XRecordDataType, [out] VARIANT* XRecordDataValue);5 [2 r$ {* [9 ]
2 v2 C- }8 z4 H+ ?4 ]8 k设置联合字典的扩展数据- k6 v' M3 a+ Q$ S
HRESULT SetXRecordData([in] VARIANT XRecordDataType, [in] VARIANT XRecordDataValue);. w. t8 r$ r" o* J8 _. {% I
: `) q/ R; \; i% `5 l3 S
6、IIcadDictionary对象1 H1 s3 t7 `; r
属性 h5 e' ` L2 `; C+ P
Name:String 指定的对象名称$ N4 X& V* i! F7 E! ^& a# L
方法:$ W, n0 i( U( k6 t
为命名字典增加一个对象1 |" ]( S# E2 F) |
HRESULT AddObject([in] BSTR Keyword, [in] BSTR ObjectName, [out, retval] IDispatch** ppNewObj); // IIcadDbItem** ?
1 m2 h. i8 K! {0 \) a; B
+ }3 M+ \5 l7 Q取得字典中对象名称(关键字)" O$ D1 t' u/ D F( l0 J# r: v
HRESULT GetName([in] IDispatch* pObject, [out, retval] BSTR* bstrName);
7 U, B B8 q% H [* R! J
9 a, q) \! ?" Q" e9 ?根据指定对象名称(关键字)返回对象
; K# M! P+ l9 }5 _9 G5 oHRESULT GetObject([in] BSTR Name, [out, retval] IDispatch** ppObj); 0 ^9 {+ U4 q7 f: F) H5 T0 c* r3 z
/ }+ i# V: Y# x根据指定对象名称(关键字)从字典中删除对象
( u; _' l- q# rHRESULT Remove([in] BSTR Name, [out, retval] IDispatch** ppObj);
2 ]" E& ~" b1 X6 v. U
4 g2 L% {$ [0 b! t0 \& E/ O重命名字典中条目名称
1 b) Z" a$ v! ` o( XHRESULT Rename([in] BSTR OldName, [in] BSTR NewName);
1 J8 c% L' v" \: y5 f5 p8 p- I2 _) V1 v: i* a* g
根据指定对象名称(关键字)从字典中替换对象; K% J8 s6 K/ j2 H& _5 Y+ a( Z
HRESULT Replace([in] BSTR OldName, [in] IDispatch* pObj);
4 ]0 F) w4 o9 Q* }# E" n/ V Q$ @* h7 V+ [" w
根据索引取得字典中对象
6 M7 Q0 J6 U' S* GHRESULT Item([in] VARIANT Index, [out, retval] IDispatch** ppItem);
) U2 D1 D& p/ A6 Y& m, d# u% `
. U9 R1 z% ?; v7 h取得字典条目数2 y# q9 W% {& N5 B: i$ }$ {
HRESULT Count([out, retval] long* pVal);: N0 ~9 ~( F3 ?
& ]6 i' z) `7 a- I6 B
在字典中增加扩展数据2 `! W* B) |- I. l
HRESULT AddXRecord([in] BSTR Keyword, [out, retval] IIcadXRecord** ppNewXRecord);. W, ^$ H5 D' P! O: f
: A( v! e2 G/ Y& A6 |) e8 J1 d7、IIcadDictionaries 对象
6 `6 P' g% S+ x9 n, L属性:
3 s9 }8 H, u4 _. [$ ]! t) _, WApplication IIcadApplication取得应用程序对象: d; W- i+ A$ O3 R6 a! |8 o3 U
Coun long取得包含条目数
/ J& ~2 B6 x6 W0 c J& QParent IIcadDocument 取得父文档对象) J5 s& X$ e$ K! q% A, `& K
方法
- y* N8 ~, k }增加一个新的字典
) @6 h& l# W7 ^ E/ q. H! E+ H4 D/ {/ rHRESULT Add ([in] BSTR Name, [out, retval] IIcadDictionary** ppItem);
& R7 w) ? h* a. X
8 F0 g O* }0 [7 `5 z取得指定的字典
+ r6 f9 w6 j; D7 @HRESULT Item([in] VARIANT Index, [out, retval] IIcadDictionary** ppItem);
+ { w$ `4 k1 h( J& S" ^5 o( u3 f& f/ |6 {/ @' S! g8 p1 G
8、IIcadGroup对象
. u T3 X$ L5 g& y; M属性:
6 u% W# p; }7 K7 oName:String 指定的对象名称, b! B$ ]- E4 t; ~% [/ x K2 d
方法:: n$ K0 d0 s! i0 \
根据指定索引取得组中实体对象& Z4 D0 V5 }; S# w! }
HRESULT Item([in] long Index, [out, retval] IIcadEntity** ppEntity);" q( c3 y3 ~3 M9 l: h9 D
" `1 S0 S. |, [8 L/ Z
取得组中实体数+ E8 |% [/ Y; j: L8 i, A$ D: a
HRESULT Count([out, retval] long* pVal);% G7 h' G3 @# N v# E3 _' H1 _ G
1 M7 `5 ^; S6 d- n l
所在图层
4 H W7 t/ E, s' B V7 }HRESULT Layer([in] BSTR layer);
. c' U; W% R4 H9 w! `; s7 r6 w) [4 T8 }) n7 ?& p. }: S0 S+ h
实体线型
$ B+ b- s. D# L; s' c4 s4 xHRESULT Linetype([in] BSTR linetype);
* F! o: c) I: l/ S2 x/ i: @ `0 u
实体线型缩放比例
7 U( x R& ?( E7 q# AHRESULT LinetypeScale([in] double linetypeScale);
0 q* a- {3 D/ r# Q7 [1 ?, O0 C6 N8 W! Y8 E/ a
对象或应用程序的可见性
: i" Y6 o1 O$ n# ~9 JHRESULT Visible([in] VARIANT_BOOL isVisible);2 q$ F. i, S8 z( p8 R9 p
# @) h% F5 a V5 q" H R
设置取得对象或选择集的高亮状态
/ U" p! p0 A0 r; j" EHRESULT Highlight([in] VARIANT_BOOL HighlightFlag);, K; N. n. k: {2 S {
* U/ |7 P7 ]; p& Y实体的绘制类型名称
3 k e! e( N2 Z6 R8 b7 sHRESULT PlotStyleName([in] BSTR plotStyleName);
6 E+ L6 J* J: Q$ H
% G. y9 Y# A2 w a4 ?3 a指定个别实体或缺省线宽 ?0 \4 w& \2 z' Q
HRESULT Lineweight([in] IcLineWeight lineWeight );
k. }- U4 s4 c D1 B. Z( f7 i
. } Y1 V. E2 s# B; s增加一个或多个实体倒组中4 I2 `: c+ w/ X) Z7 S" Z- {2 W! B
HRESULT AppendItems([in] VARIANT Objects);
$ ~% S1 a/ A6 f+ o' a7 I: M& b1 H6 J0 J
从组中删除指定条目0 ]7 R$ @8 T6 w: W; P$ [ J7 B
HRESULT RemoveItems([in] VARIANT Objects);1 w2 R+ N. x8 K8 i4 T% ]
' M) h0 l1 H, T1 C. d4 _( `* m" o6 O更新对象到视图
+ {" t) d4 h" v) d) C& DHRESULT Update();2 v) O2 p* S: o
5 [6 W* G2 G% i4 `( ?1 n! [1 q指定实体或层颜色0 C8 [ T! u, K: s% q3 F: D
HRESULT Color([in] Colors color);
* |/ G: {) i0 I" [+ t3 A7 P b+ n* I: {
9、IIcadGroups对象
. \+ U, R- U$ I属性:
- n. `, n$ d m) B4 e' q5 FApplication IIcadApplication取得应用程序对象
6 W0 O% c! N( R5 L0 H# x$ U9 e4 jCoun long取得包含条目数( f9 m; s7 B; S' k
Parent IIcadDocument 取得父文档对象4 Z( a }9 O, [, K( W0 ]' a
方法+ k( n! U. D J" Q, N
增加一个新组
& B J- o4 m' u7 u8 RHRESULT Add ([in] BSTR Name, [out, retval] IIcadGroup** ppItem);
$ p/ W' i, j2 F0 e4 ^9 f8 ?2 ^; c8 E, o8 H" X" q! v! p
取得指定的组
) A( d" n; H* W1 o, [+ G3 SHRESULT Item([in] VARIANT Index, [out, retval] IIcadGroup** ppItem); |