这样子,就可以输入空格。 好,多谢!
可以按照图中的意思写出来吗?
按照图中的意思可以实现吗? ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<BR>;;;pxxz.lsp 平行旋转<BR>;;;* C:pxxz<BR>;;;-- <A href="mailto:XYP@bsedi.com" target="_blank" >XYP@bsedi.com</A><BR>;;;2004.08.29<BR>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<BR>(prompt "\n\r 加载平行旋转程序。")<BR>;-------------------------------------------<BR>;;;主程序<BR>(DEFUN C:pxxz (/ s1 en pt1 ang th old new)<BR> (cmdla0)<BR> (SETQ S1 (entsel "\n\t选择旋转文字:")<BR> s1 (entget (car S1))<BR> )<BR> (while (/= (dxf 0 s1) "TEXT");确认是文本<BR> (princ (dxf 0 s1))<BR> (SETQ S1 (entsel "\n\t选择旋转文字:")<BR> s1 (entget (car S1))<BR> )<BR> )<BR> (setq en (entsel "\n\t选择定位线 : ")<BR> pt1 (cadr en);定位点<BR> ang (angle (ddxf 10 en)(ddxf 11 en));线角度<BR> th (dxf 40 s1);字高<BR> pt1 (polar pt1 (+ (/ pi 2) ang)(/ th 1.25));定位点<BR> ;h (dxf 40 s1);字高<BR> )<BR> (if s1<BR> (progn<BR> (SETQ OLD (assoc 50 s1))<BR> (SETQ NEW (CONS 50 ang))<BR> (SETQ S1 (SUBST NEW OLD s1))<BR> (ENTMOD S1)<BR> (SETQ OLD (assoc 11 S1))<BR> (SETQ NEW (CONS 11 pt1))<BR> (SETQ S1 (SUBST NEW OLD S1))<BR> (ENTMOD S1)<BR> )<BR> )<BR> (princ)<BR> (cmdla1)<BR> (PXYP "PXXZ (平行旋转)")<BR> );defun
<BR>;;;-------------------------------------------<BR>;;;子程序<BR>;;;<BR>(defun CMDLA0 ()<BR> (setq cmdech (GETVAR "CMDECHO"))<BR> (setq oom (getvar "orthomode"))<BR> (setq osm (getvar "osmode"))<BR> (SETQ LA (getvar "clayer"))<BR> (setvar "regenmode" 1)<BR> (SETVAR "CMDECHO" 0)<BR> )
;;;<BR>(defun CMDLA1 ()<BR> (SETVAR "CMDECHO" cmdech)<BR> (setvar "orthomode" oom)<BR> (setvar "osmode" osm)<BR> (setvar "clayer" LA)<BR> (setvar "regenmode" 1)<BR> )
;;;<BR>(defun ureal (bit kwd msg def / inp)<BR> (if def<BR> (setq msg (strcat "\n" msg "<" (rtos def 2) ">: ")<BR> bit (* 2 (fix (/ bit 2)))<BR> )<BR> (setq msg (strcat "\n" msg ": "))<BR> )<BR> (initget bit kwd)<BR> (setq inp (getreal msg))<BR> (if inp inp def)<BR> )
;;;<BR>(Defun MKLA (a b)<BR> (If (= (Tblsearch "layer" a) nil)<BR> (Command "layer" "m" a "c" b a "")<BR> (Command "layer" "t" a "s" a "c" b a "")<BR> )<BR> )
;;;<BR>; ----------------------- DXF --------------------------<BR>(defun dxf (code elist) (cdr (assoc code elist)))<BR>(defun dxf-s1(code elist) (dxf code (entget elist)))<BR>(defun ddxf (code elist) (dxf code (entget (car elist))))
;;;<BR>(DEFUN PXYP (TXT1)<BR> (SETQ TXT1 (STRCAT "\n\r 程序命令: " TXT1 " -- <A href="mailto:XYP@bsedi.com" target="_blank" >XYP@bsedi.com</A>"))<BR> (PRINC TXT1)<BR> (Princ)<BR> );defun
;;;<BR>(PXYP "PXXZ (平行旋转)")<BR>(princ)<BR>;-------------------------------------------<BR>;;;END TEXT本身自带此功能 好的创意,先下载了再研究 给个思路:先写字,然后在字下面加上下划线。这样美观、统一。 ;;;;文字方向匹配
(defun c:FX (/ smd gmd ent text_ang ent_list)
(setq smd (getvar "snapmode")
gmd (getvar "gridmode")
)
(command "snapmode" "0")
(command "gridmode" "0")
(princ "\n选择源物体:")
(command "ucs" "ob" pause)
(setvar "UCSICON" 0)
(if (setq ent (entsel "选择目标文字:")
)
(progn
(setq text_ang (angle '(0 0 0) (getvar "UCSXDIR")))
(while (> text_ang (/ pi 2))
(setq text_ang (- text_ang pi))
)
(setq ent_list (entget (car ent)))
(setq ent_list (subst (cons 50 text_ang)
(assoc '50 ent_list)
ent_list
)
)
(entmod ent_list)
)
)
(setvar "UCSICON" 1)
(command "ucs" "p")
(setvar "snapmode" smd)
(setvar "gridmode" gmd)
(princ)
)
;;;结束 很好用,我试过了。
页:
1
[2]