马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun c:xdtb_curvesubjc (/ pmid pts p1 e p2 g)
- (defun _callback (dynpt)
- (apply 'xdrx_grdraw (append (list 252 0) pts))
- )
- (xdrx_begin)
- (xdrx_sysvar_push '("osmode" 545))
- (xdrx_pointmonitor "_callback")
- (setq pts nil)
- (if (not #xd_var_global_width)
- (setq #xd_var_global_width 1.0)
- )
- (if (setq var (getreal
- (xdrx_prompt "\n输入加粗宽度<" #xd_var_global_width ">:" t)
- )
- )
- (setq #xd_var_global_width var)
- )
- (while (and (setq e (car (xdrx_entsel
- "\n选择曲线实体<退出>:"
- '((0 . "*line,arc,circle,ellipse"))
- )
- )
- )
- (setq p1 (getpoint "\n起始点<退出>:"))
- (if (xdrx_curve_isclosed e)
- (progn (setq pmid (getpoint p1 "\n中间点<退出>:"))
- (setq pts (append (list p1) (list pmid)))
- )
- t
- )
- (setq p2 (getpoint (if pmid
- pmid
- p1
- )
- "\n终止点<退出>:"
- )
- )
- (setq p1 (xdrx_curve_getclosestpoint e (trans p1 1 0)))
- (setq p2 (xdrx_curve_getclosestpoint e (trans p2 1 0)))
- )
- (progn (redraw)
- (if (not pmid)
- (setq pmid (xdrx_midp p1 p2)
- pmid (xdrx_curve_getclosestpoint e pmid)
- )
- )
- (setq g (xd::curve:getsub e p1 p2 pmid))
- (xdge::entity:make g)
- (xdrx_entity_matchprop e (entlast))
- (xdrx_curve->polyline (entlast))
- (xdrx_setpropertyvalue
- (entlast)
- "constantwidth"
- #xd_var_global_width
- )
- (xdrx_object_release g)
- (xdrx_prompt "\n局部曲线加粗成功.")
- )
- (setq pts nil pmid nil)
- )
- (xdrx_pointmonitor)
- (xdrx_end)
- (princ)
- )
|