本帖最后由 mituzhe 于 2022-8-9 14:47 编辑
重新复制了一遍代码,顺便了解了怎么添加代码区域,哈哈
 - ;-------------------------------------------------------------------------------------------------
- ;直线端点标记
- (defun c:tt1 (/ ang line_ctrl_pts lyr pt1 pt2 ss_line)
- (setq ss_line (ssget '((0 . "LWPOLYLINE,LINE"))))
- (foreach ent (xyp-Ss2List ss_line)
- (setq line_ctrl_pts (gd-getCtrlPt ent)
- lyr (vla-get-layer (vlax-ename->vla-object ent))
- )
- (if (wcmatch (cdr (assoc 0 (entget ent))) "*POLYLINE")
- (progn
- ; (setq line_ctrl_pts (mapcar '(lambda (pt) (append pt '(0.0)))
- ; line_ctrl_pts
- ; )
- ; )
- (setq line_ctrl_pts (mapcar 'list line_ctrl_pts (cdr line_ctrl_pts)))
- )
- )
- (foreach pts line_ctrl_pts
- (setq pt1 (nth 0 pts)
- pt2 (nth 1 pts)
- ang (angle pt1 pt2)
- )
- (entmake
- (mapcar 'cons '(0 8 62 10 11) (list "LINE" lyr 2 pt1 (polar pt1 ang 1)))
- )
- (entmake
- (mapcar 'cons
- '(0 8 62 10 11)
- (list "LINE" lyr 2 pt2 (polar pt2 (+ ang PI) 1))
- )
- )
- )
- (entdel ent)
- )
- (princ)
- )
- (defun xyp-Ss2List (ss / i s1 lst)
- (and ss
- (setq i -1)
- (while (setq s1 (ssname ss (setq i (1+ i))))
- (setq lst (cons s1 lst))
- )
- )
- lst
- )
- (defun gd-getCtrlPt (ent / ctrlPt_lst)
- ; (setq ctrlPt_lst nil)
- (setq ctrlPt_lst (append
- (vl-remove-if-not
- '(lambda (x) (or (= 11 (car x)) (= 10 (car x))))
- (entget ent)
- )
- ctrlPt_lst
- )
- )
- ; (print ctrlPt_lst)
- (mapcar 'cdr ctrlPt_lst)
- )
|