AutoLISP以直线为基线添加文字

本文介绍了一段AutoLISP代码,该代码能够在CAD中沿直线等距添加文字。通过获取直线两端点坐标,计算直线长度及角度,并按指定间隔在直线上添加文字。

AutoLISP以直线为基线添加文字,代码如下。

(defun c:test()
  (setvar "cmdecho" 0)
  (setq os (getvar "osmode"))
  (setvar "osmode" 0)
  (setq en (car (entsel "\n选取线:")))
  (setq pt10 (cdr (assoc 10 (entget en))))
  (setq pt11 (cdr (assoc 11 (entget en))))
  (setq dd (distance pt10 pt11))
  (setq shh (getvar "textsize"))
  (princ (strcat "\n线段长度=:" (rtos dd 2)))
  (setq str_hh (strcat "\n文字高度<" (rtos shh 2) ">:"))
  (setq hh (getdist pt10 str_hh))
  (if (null hh) (setq hh shh))
  (setq txt (getstring "\n文字内容:"))
  (setq ang (angle pt10 pt11))
  (setq i 1 txtpt pt10)
  (setq nn (1- (strlen txt)))
  (repeat (1+ nn)
    (setq stxt (substr txt i 1))
    (command "text" "c" txtpt hh (* (/ ang pi) 180) stxt)
    (setq txtpt (polar txtpt ang (/ dd nn)))
    (setq i (1+ i))
    )
  (setvar "osmode" os)
  )

代码完。

从第一点到第二点看,文字只能再直线的左侧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值