马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 st788796 于 2016-8-31 15:14 编辑
Acad 中 Dimension 一般是在 XY 平面标注,如果是一个空间 Line,需要将此 Line 设定到一个被 XY 平面包含的 UCS 后再使用 标注命令,用下面的程序可以完成设定 UCS ,标注 Line
![](source/plugin/imc_colorcode/images/loading.gif)
- (defun c:tt (/ e sp ep p0 xdir ydir zdir)
- (if (setq e (xdrx_entsel "\nPick Line: " '((0 . "line"))))
- (progn
- (mapcar 'set
- '(sp ep)
- (xdrx_getpropertyvalue (car e) "startPoint" "endPoint")
- );_获取直线的起点、终点
- (xdrx_ucs_set sp (mapcar '- ep sp) );_设置一个临时 UCS,该直线作为 Z 轴,任意轴算法下,该坐标系是唯一的
- (mapcar 'set
- '(p0 xdir ydir zdir)
- (XD::UCS:CoordSys)
- );_取出该 UCS 的 x y z 信息
- (xdrx_ucs_set p0 zdir xdir);_重新设置一个坐标系,将直线作为 x 轴,上一个UCS的 x 轴作为 Z 轴
- (vla-AddDimAligned
- (vla-get-modelspace
- (vla-get-activedocument (vlax-get-acad-object))
- )
- (vlax-3d-point sp)
- (vlax-3d-point ep)
- (vlax-3d-point sp)
- );_在 UCS 下生成 标注,这里 xdrx_dimension_makexxx 不适用 ucs 情况
- (command "ucs" "w")
- )
- )
- (princ)
- )
|