找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1163|回复: 1

[教学] API应用AcDb系列(2)--AcDbLine类函数

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-8 19:53:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 st788796 于 2014-11-9 07:35 编辑

ARX 中 AcDbLine Method
20141108192515.jpg
Net 中 AcDbLine Properties
20141108192608.jpg
ActiveX 中
20141108193040.jpg
Dxf
20141108221903.jpg
ActiveX 中 method 是 vla- 前缀加方法 ,如 vla-arraypolar ,Properties 是 vlax-get / vla-put 再加特性,如 vla-get-angle , 只有 read-write 的属性才有 put ,如 startpoint 属性 vla-get-startpoint / vla-put-startpoint

AcDbLine Object 中  Angle、 Length 算是其特有的属性,(vla-get-angle / vla-get-length )

在 xdapi 中 Line 特性查询主要集合在 xdrx_getpropertyvalue 中,包括:

1 angle 角度

2 Normal 平面向量(210)

3 Thickness 厚度(39)

ActiveX 和 Net 中增加了一个 Delta 属性,
相当于Lisp (mapcar '- endpoint startpoint)(vlax-curve-getfirstderiv curve 0.0)

xdapi 中专用函数

1 (xdrx_linernearpoint  p1 p2 testPnt)测试直线两点哪个距离测试点近

2 (xdrx_line_OnwhichSide p1 p2 testPnt) 测试直线两点测试点的位置关系,用 (trans (mapcar '- testpnt p1) 0 (mapcar '- p2 p1))根据结果判断

3 (xdrx_line_midp p1 p2) 两点之中点

xdrx_setpropertyvalue 对 AcDbLine 可操作方法
20141108195518.jpg


在Alisp中用 MyParent 判断 Object 是否为 AcDbCurve
命令: (xdrx_getpropertyvalue (entlast) "MyParent")
"AcDbCurve"





论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2014-11-9 12:41:00 | 显示全部楼层
本帖最后由 st788796 于 2014-11-9 17:54 编辑

ARX Method
Net Properties
ActiveX Properties
DXFType
设置终点
setEndPoint
vla-put-endpointPoint3d    WCS
设置起点
setStartPoint
vla-put-startpointPoint3d    WCS
设置厚度setThicknessvla-put-thicknessdouble
设置拉伸方向setNormalvla-put-normalVector3d
终点(R/W)endPointEndPointvla-get-endpoint(cdr (assoc 11 el))Point3d   WCS
起点(R/W)startPointStartPointvla-get-startpoint(cdr (assoc 10 el))Point3d   WCS
厚度(R/W)thicknessThicknessvla-get-thickness(cdr (assoc 39 el))double
拉伸方向(R/W)normalNormalvla-get-normal(cdr (assoc 210 el))Vector3d
角度(R)Anglevla-get-angledouble
向量(R)Deltavla-get-deltaVector3d
线长(R)Lengthvla-get-lengthdouble
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-27 12:13 , Processed in 0.269770 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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