马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
来源于编程申请论坛的求助:http://bbs.xdcad.net/thread-717291-1-1.html
 - (defun c:xdtb_plsegbz (/ val e firstderiv ar ge perpvec cen segs mid vec)
- (defun _write (val pt vec)
- (xdrx_text_make
- pt
- (rtos val 2 #xd_var_global_bits)
- #xd_var_global_txtheight
- (xd::geom:angleformat (xdrx_vector_angle vec))
- )
- (xd::text:setalignment (entlast) pt "mc")
- (xd::text:adjust (entlast))
- )
- (xdrx_begin)
- (if (not #xd_var_global_txtheight)
- (setq #xd_var_global_txtheight 3.0)
- )
- (if (setq val (getreal
- (xdrx_prompt "\n文字高度<" #xd_var_global_txtheight ">:" t)
- )
- )
- (setq #xd_var_global_txtheight val)
- )
- (if (not #xd_var_global_bits)
- (setq #xd_var_global_bits 1)
- )
- (if (setq val (getint
- (xdrx_prompt "\n保留位数<" #xd_var_global_bits ">:" t)
- )
- )
- (setq #xd_var_global_bits val)
- )
- (if (and (xdrx_initget "A")
- (setq e (xdrx_entsel
- "\n选择多段线[点选(A)]<退出>:"
- '((0 . "*POLYLINE"))
- )
- )
- )
- (progn (cond ((= e "A")
- (if (and (setq pt (getpoint "\n点封闭区域内部点<退出>:"))
- (xdrx_geom_bpoly pt)
- )
- (progn (setq e (entlast)
- e-erase e
- )
- )
- )
- )
- (t (setq e (car e)))
- )
- (if e
- (progn (setq ar (xdrx_getpropertyvalue e "area"))
- (setq ge (xdge::constructor e)
- verts (xdrx_getpropertyvalue e "vertices")
- cen (xdrx_points_centroid verts)
- segs (xdge::getpropertyvalue ge "getcurvelist")
- pts nil
- )
- (_write ar cen (getvar "ucsxdir"))
- (mapcar '(lambda (x)
- (xdge::getpropertyvalue x "length" "midpoint")
- (setq mid (xdge::getpropertyvalue x "paramof" #midpoint)
- vec (xdrx_vector_normalize (mapcar '- cen #midpoint))
- firstderiv (xdrx_vector_normalize
- (caadr (xdge::getpropertyvalue x "evalpoint" mid 1))
- )
- perpvec (xdrx_vector_perpvector firstderiv)
- perpvec (if (xdrx_vector_iscodirectional vec perpvec t)
- perpvec
- (xdrx_vector_negate perpvec)
- )
- pt (mapcar '+
- #midpoint
- (xdrx_vector_product perpvec #xd_var_global_txtheight)
- )
- )
- (_write #length pt firstderiv)
- )
- segs
- )
- (xdrx_entity_delete e-erase)
- (xdrx_object_release ge segs)
- )
- )
- )
- )
- (xdrx_end)
- (princ)
- )
|