明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2135|回复: 13

[求助]这条直线应如何获得跟字一样长

  [复制链接]
发表于 2005-1-26 21:13:00 | 显示全部楼层 |阅读模式
如图,我不需要用下划线来实现,我要的是画直线。lsp应如何编,请指教! (defun c:test (/ base text0)
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(setvar "TEXTEVAL" 1)
(SETQ base (getstring "\n指定文字位置 :"))
(SETQ txt0 (getstring "\n请输入文字 :"))
(command "text" "j" "ml" base "2.5" "0" txt0)
(setq base (mapcar '+ base '(0.0 1.0)))
(command "line" base  ---“这里该怎么写?这条线与文字基本一样长,如何获得?”-----)
(setvar "cmdecho" 1)
(princ)
)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2005-1-26 22:28:00 | 显示全部楼层
这是我改得: (defun c:test ()
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(setvar "TEXTEVAL" 1)
(SETQ base (getpoint "\n指定文字位置 :"))
(SETQ txt0 (getstring "\n请输入文字 :"))
(command "text" "j" "tr" base "2.5" "0" txt0)
(setq en0(entlast))
(setq en(entget en0))
(setq p00 (list (cadr (assoc 10 en)) (caddr (assoc 10 en))))
(setq L (abs(- (cadr (assoc 11 en)) (cadr (assoc 10 en)))))
(command "move" en0 "" p00 base)
(setq base (mapcar '- base '(0.0 1.0)))
(setq base1 (polar base 0 L))
(command "line" base base1 "")
(setvar "cmdecho" 1)
(setvar "osmode" 37)
(princ)
)
发表于 2005-1-26 23:45:00 | 显示全部楼层
(defun c:tbline()
(setq ss (ssget))
(setq ss (ssget "p" '((0 . "TEXT"))))
(setq i 0)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq ssdata (entget ssn))
(command "ucs" "e" ssn)
(setq box (textbox ssdata))
(setq p1 (car box))
(setq p3 (cadr box))
(setq p2 (list (car p3) (cadr p1)))
(setq p4 (list (car p1) (cadr p3)))
(command "line" p1 p2 "") ;请自己调整距离文字的位置
(setq i (1+ i))
)
(command "ucs" "")
(PRIN1)
)
 楼主| 发表于 2005-1-27 08:26:00 | 显示全部楼层
受益非浅!谢谢各位!
发表于 2005-1-28 22:30:00 | 显示全部楼层
不知道如果文字有高宽比时上面几位的程序是不是正确的。
发表于 2005-1-29 00:01:00 | 显示全部楼层
比较支持三楼
发表于 2005-1-30 00:08:00 | 显示全部楼层
三楼的这思路真的很好呵,好久没来了,好想大家呀,这些天快过年了,忙着讨钱,一直没空来呀.
发表于 2005-1-30 10:33:00 | 显示全部楼层
(command "line" p1 p2 "") ;请自己调整距离文字的位置
如果我要设置线和文字相距10,怎么改啊??
发表于 2005-1-30 11:13:00 | 显示全部楼层
下划线加粗并自动确定位置:(按1:100出图考虑,线宽60,字与线间距150)
  1. ;;;下划线
  2. (defun C:xhx (/ e m pt1 pt2 x1 y1 x2 y2 pt1 pt2)
  3.    (setvar "CMDECHO" 0)
  4.    (setvar "osmode" 0)
  5.    (setq  e   (car (entsel "\n选择文字 : "))
  6.   sc 1
  7.    )
  8.    (command "ucs" "Entity" e)
  9.    (setq  M     (textbox (entget e))
  10.   pt1 (car M)
  11.   pt2 (cadr M)
  12.   x1   (car pt1)
  13.   y1   (cadr pt1)
  14.   x2   (car pt2)
  15.   y2   (cadr pt2)
  16.   y1   (- y1 (* 150 SC))
  17.   y2   (- y2 (* 150 SC))
  18.   pt2 (list x2 y1)
  19.   pt1 (list x1 y1)
  20.    )
  21.    (command "pline" pt1 "w" (* 60 sc) "" pt2 "")
  22.    (command "ucs" "p")
  23.    (princ)
  24. )
发表于 2005-1-30 18:12:00 | 显示全部楼层
好用的,不过1964兄,你的老毛病 程序结束,自定义的捕捉丢失 还有,我一般字下面是用2条线的,上面一条有宽度,下面一条没宽度,两线距离100,这样行哇?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-29 18:28 , Processed in 0.204365 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表