首先要确保已加载xyp_lib通用函数!
 - [FONT=courier new](load "xyp_lib")
- ;|加载通用函数(可在签名栏直接下载)
- 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
- 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
- 1.在acad.lsp中增加(load"xyp_lib")
- 2.在每个程序内增加(load"xyp_lib")
- 3.在command下,输入(load"xyp_lib")
- 4.在菜单.mnl中增加(load"xyp_lib")
- 5.将xyp_lib.vlx文件直接拽到cad屏幕
- [COLOR=red] ★通用函数下载地址:[/COLOR]
- [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
- [url]http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=37554&page=1[/url]|;
- ;;;下划线加粗并自动确定位置,按1:100出图考虑,线宽60,字与线间距150
- (defun C:XHX (/ e m pt1 pt2 x1 y1 x2 y2 pt1 pt2)
- (cmdlasc0)
- (setvar "osmode" 0)
- (princ "\n选择文字 : ")
- (setq ss (ssget '((0 . "TEXT")))
- i -1
- )
- (while (setq e (ssname ss (setq i (1+ i))))
- (command "ucs" "Entity" e)
- (setq M (textbox (entget e))
- pt1 (car M)
- pt2 (cadr M)
- x1 (car pt1)
- y1 (cadr pt1)
- x2 (car pt2)
- y2 (cadr pt2)
- y1 (- y1 (* 150 SC))
- y2 (- y2 (* 150 SC))
- pt2 (list x2 y1)
- pt1 (list x1 y1)
- )
- (command "pline" pt1 "w" (* 60 sc) "" pt2 "")
- )
- (cmdla1)
- )
- ;;;线开口
- (defun c:XKK (/ pt1 pt2 pt3 sss nnn e leng df s1)
- (cmdla0)
- (setvar "osmode" 0)
- (setq pt1 (getvar "VSMIN")
- pt2 (getvar "VSMax")
- pt3 (_midp pt1 pt2)
- SSS (ssget '((0 . "CIRCLE,ELLIPSE,*LINE,ARC")))
- NO1 (udist 1 "" "\n线长" NO1 pt3)
- NO2 (udist 1 "" "\n缺口长" NO2 pt3)
- nnn -1
- )
- (while (setq e (ssname sss (setq nnn (1+ nnn))))
- (setq leng (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e))
- df (fix (abs (/ leng (+ NO1 no2))))
- )
- (repeat df
- (setq pt1 (vlax-curve-getPointAtDist
- (vlax-ename->vla-object e)
- no1
- )
- pt2 (vlax-curve-getPointAtDist
- (vlax-ename->vla-object e)
- (+ no1 no2)
- )
- )
- (command "break" e pt1 pt2)
- (command "select" "l" "")
- (setq s1 (ssget "p")
- e (ssname s1 0)
- )
- )
- )
- (cmdla1)
- )[/FONT]
|