明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: ou_y_x

[已解答] 如何生成平行于线的文字?

[复制链接]
发表于 2013-11-30 10:52:58 | 显示全部楼层
和我的手动连续注记边长功能一样,点那边就注记在那边

本帖子中包含更多资源

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

x
发表于 2014-11-11 10:47:24 | 显示全部楼层
自己写的,中间还有点bug,希望大家看看,程序写的有点麻烦·····
(defun c:xxb ()
  (setvar "osmode" 0)
  (setvar "cmdecho" 0)
  (setq en1 (car (setq ent (entsel "\n选择要写文字的线:"))))
  (setq en (entget en1))
  (setq pe (cadr ent))
  (setq pt (osnap pe "near"))
  (setq ab1 (getpoint "\n选择文字的方向:"))
  (setq ang1 (angle pt ab1))
  (setq pt10 (cdr (assoc 10 en)))
  (setq pt11 (cdr (assoc 11 en)))
  ;;提取x,y
  (setq a0 (car pt10))
  (setq b0 (cadr pt10))
  (setq a1 (car pt11))
  (setq b1 (cadr pt11))
  (setq aa (- a1 a0))
  (setq bb (- b1 b0))
  (if (/= aa 0)
    (progn
      (setq ba (/ bb aa))
      (setq ang (atan ba))
    )
    (progn
      (setq ang (/ pi 2))
    )
  )
  (setq r1 (getvar "userr1"))
  (setq rr (* 250 (/ r1 100)))
  (setq bb (* 2 r1))
  (if  (and (> ang1 -0.79) (< ang1 1.05)  )
  ;(if (>  (- ang1 ang) (+ pi ang))
    (setq pt1 (polar pt (+ (* pi 1.5) ang) bb))
    (setq pt1 (polar pt (+ (/ pi 2) ang) bb))
  )
  (setq st (getstring "\n输入文字内容<200x400>:"))
  (if (= st "")
    (setq st "200x400")
  )
  (command "text" "j" "mc" pt1 rr (* (/ ang pi) 180) st)
  (prin1)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-18 22:43 , Processed in 0.170154 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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