马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 newer 于 2018-11-19 21:03 编辑
有朋友申请:http://bbs.xdcad.net/thread-678707-1-1.html
 - (defun c:xdtb_cqwx (/ var e1 e2 pts p1 p2 p3 dis dis1 dir dir1 tf)
- (xdrx_begin)
- (xdrx_sysvar_push '("dimzin" 0))
- (if (not #xd_var_global_txtheight)
- (setq #xd_var_global_txtheight 3.5)
- )
- (if (setq var (getreal (xdrx_prompt
- "\n输入文字高度<"
- #xd_var_global_txtheight
- ">:"
- t
- )
- )
- )
- (setq #xd_var_global_txtheight var)
- )
- (if (not #xd_var_global_bits)
- (setq #xd_var_global_bits 3)
- )
- (if (setq var (getint
- (xdrx_prompt "\n输入小数位数<" #xd_var_global_bits ">:" t)
- )
- )
- (setq #xd_var_global_bits var)
- )
- (if (and (setq e1 (car
- (xdrx_entsel "\n拾取实际开挖线<退出>:" '((0 . "*polyline")))
- )
- )
- (setq e2 (car
- (xdrx_entsel "\n拾取设计开挖线<退出>:" '((0 . "*polyline,circle,ellipse")))
- )
- )
- )
- (progn (setq pts (xdrx_getpropertyvalue e1 "vertices"))
- (xd::text:init 1)
- (mapcar '(lambda (x)
- (setq p1 (xdrx_curve_getclosestpoint e2 x)
- dis (distance p1 x)
- dir (xdrx_vector_normalize (mapcar '- x p1))
- dir1 (xdrx_curve_getfirstderiv e2 p1)
- dir1 (xdrx_vector_perpvector dir1)
- )
- (if (setq tf (xdrx_point_isinside x e2))
- (setq dis1 (strcat "-" (rtos dis 2 #xd_var_global_bits))
- p3 p1
- )
- (setq dis1 (strcat "+" (rtos dis 2 #xd_var_global_bits))
- p3 x
- )
- )
- (if (xdrx_point_isinside (mapcar '+ p1 dir1) e2)
- (setq dir1 (xdrx_vector_negate dir1))
- )
- (setq p2 (mapcar '+
- p3
- (xdrx_vector_product dir1 (/ #xd_var_global_txtheight 2.0))
- )
- )
- (if (not (equal dis 0.0 1e-3))
- (progn (xdrx_text_make
- p2
- dis1
- #xd_var_global_txtheight
- (xd::geom:angleformat (xdrx_vector_angle dir))
- )
- (if tf
- (xdrx_setpropertyvalue (entlast) "color" 1 "WidthFactor" 0.7)
- (xdrx_setpropertyvalue (entlast) "color" 2 "WidthFactor" 0.7)
- )
- (xd::text:adjust (entlast))
- (if (< (car dir1) 0)
- (xd::text:setalignment (entlast) p2 "mr")
- (xd::text:setalignment (entlast) p2 "ml")
- )
- (xdrx_circle_make x (/ #xd_var_global_txtheight 7.0))
- )
- )
- )
- pts
- )
- )
- )
- (xdrx_sysvar_pop)
- (xdrx_end)
- (princ)
- )
|