ou_y_x 发表于 2013-11-25 17:49:47

如何生成平行于线的文字?

本帖最后由 ou_y_x 于 2013-11-26 13:07 编辑

各位大侠,请教个问题。
我想通过点取平行线上一点(点取即刻生成),实现:
1、以该点为参照,文字插入点偏离直线80;
2、文字角度平行于直线,文字内容默认123;
3、双线最大间距500,当点取上直线时,文字在上;当点取下直线时,文字在下;

1、2比较好做,
但是对于3,获取点可以用getpoint,
但怎么既获取点,又获取直线,并判断文字应在的位置。

新手上路,希望各位不吝赐教。

效果如下图:


yzxgwl 发表于 2013-11-25 20:09:56

象天正这样软件,画门时,还要你再点一点确定门的开启方向呢。你要求的恐怕难实现。

xyp1964 发表于 2013-11-25 22:51:44

不知可对?

ou_y_x 发表于 2013-11-25 23:25:47

xyp1964 发表于 2013-11-25 22:51 static/image/common/back.gif
不知可对?

正是这个意思,
版主能否提供思路和源码供参考学习?

caoliu023 发表于 2013-11-25 23:52:08

xyp1964 发表于 2013-11-25 22:51 static/image/common/back.gif
不知可对?

呵呵,

ou_y_x 发表于 2013-11-26 11:22:07

xyp1964 发表于 2013-11-25 22:51 static/image/common/back.gif
不知可对?

版主别只放图让人看着干着急啊。。。

xyp1964 发表于 2013-11-26 12:34:51

;; 需要e派工具箱(XCAD)的支持:http://yunpan.cn/QXQKsW9gAPmpF
;; 生成平行于线的文字
(defun c:test1439 ()
(xyp-CMDLAsc0)
(xyp-initSet '(dist) '(500.))
(setq dist (Udist 7 "" "双线最大间距<输入或鼠标直接量取>" dist nil))
(while (and (setq e1 (entsel "\n选择直线: "))
              (xyp-etype s1 "line")
       )
    (setq s1(car e1)
          p1(osnap (cadr e1) "nea")
          rad (xyp-get "angle" s1)
          dd(* xyp-sc 250)
          p2(if (setq lst (xyp-get-ClosestDistEname s1 p1 dist))
                (polar p1 (angle (nth 2 lst) p1) dd)
                (xyp-Get-RightPoint (polar p1 rad 1) (polar p1 rad -1) dd)
              )
          s2(xyp-Text 5 p2 "123")
          s2(xyp-SubUpd s2 50 (xyp-Rad2Real rad 1))
    )
)
(xyp-CMDLA1)
)

ou_y_x 发表于 2013-11-26 13:14:34

xyp1964 发表于 2013-11-26 12:34 static/image/common/back.gif


这样做广告不好吧。。。

ou_y_x 发表于 2013-11-26 20:11:27

继续等待下一位热心人出现。。。

lenovo1x1 发表于 2013-11-26 23:38:57

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=91313&page=1#pid498830

文本动态对齐于曲线.lsp
页: [1] 2
查看完整版本: 如何生成平行于线的文字?