[求助]文字和直线平行
我经常要在直线上写字,但是每次写的字都无法和直线平行,还要先写完后,再旋转到与直线平行。请编写一个程序,写出的字和直线平行?? 转ucs 能不能用编程实现?如果,有很多线都不平行,那不是要旋转n次usc? 呵呵,我也有这样的问题 ,在天正里面有命令可以平行线写文字,但已经写好的文字,不知道怎么编辑? 其实在理正中也能实现,但是在cad中如何实现才好?? (defun c:ltext ()<BR> (setq en (car (entsel "\n选取线:")))<BR> (setq endata (entget en))<BR> (setq pt1 (cdr (assoc 10 endata)))<BR> (setq pt2 (cdr (assoc 11 endata)))<BR> (setq ang1 (/ (* (angle pt1 pt2) 180) pi))<BR> (setq str (getstring "\n输入字符:"))<BR> (setq strh (getreal "\n输入字高:"))<BR> (setq pt (getpoint "\n指定位置:"))<BR> (command "text" pt strh ang1 str) <BR>)这样可以。 如果是pline呢? ljcgq发表于2004-6-10 19:13:00static/image/common/back.gif如果是pline呢?
参见如下程序:
(defun c:lsp48()<BR> (setq en (entsel "select a pline:"))<BR> (setq endata (entget (car en)))<BR> (setq n 0)<BR> (setq point 0)<BR> (setq i (length endata))<BR> (princ i)<BR> (repeat (length endata)<BR> (setq pp (nth n endata))<BR> (setq key (car pp))<BR> (if (= key 10)<BR> (progn<BR> (setq point (list (cadr pp) (caddr pp) point))<BR> (princ point)<BR> )<BR> )<BR> (setq n (1+ n))<BR> )<BR> (setq px2 (car point))<BR> (setq py2 (cadr point))<BR> (setq point (caddr point))<BR> (princ "\npt1的坐标:x=")(princ px2)(princ "y=")(princ py2) <BR> (setq px1 (car point))<BR> (setq py1 (cadr point))<BR> (princ "\npt2的坐标:x=")(princ px1)(princ "y=")(princ py1)<BR> (setq ang_l (atan (- py2 py1) (- px2 px1)))<BR> (setq ang_l1 (* ang_l (/ 180 pi)))<BR> (princ "\n直线与x轴的夹角=")(princ ang_l1)<BR> (setq en1 (entsel "选择旋转文字:"))<BR> (setq en_date (entget (car en1)))<BR> (setq old_angle (assoc 50 en_date))<BR> (setq oangle (* (cdr old_angle) (/ 180 pi)))<BR> (princ "\n原文字角度=")(princ oangle)<BR> (setq ang_l (cons 50 ang_l))<BR> (setq en_date (subst ang_l old_angle en_date))<BR> (entmod en_date)<BR> )<BR> <BR> (prompt ".........c:lsp48...................")<BR> (prin1)<BR> ;;;将文本按指定的方向的对齐。<BR>(defun c:fitdir( / entlst data pt1 pt2)<BR> (while (and (setq entlst (entsel "\n请选择要调方向的文本:"))<BR> (setq data (entget (car entlst)))<BR> (= "TEXT" (cdr (assoc 0 data)))<BR> (setq pt1 (getpoint "\n对齐方向第一点:"))<BR> (setq pt2 (getpoint "\n对齐方向第二点:")) <BR> )<BR> (entmod (subst (cons 50 (angle pt1 pt2)) (assoc 50 data) data))<BR> )<BR> (princ)<BR> ) 按照你的程序,在输入文字的时候,不能有空格符,如果文字有空格的话,就进入下一个命令了!望改进!
页:
[1]
2