找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3147|回复: 18

[LISP程序]:求可以将文字与线平行的lsp程序?

[复制链接]
发表于 2006-6-9 15:40:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
求可以将文字与线平行的lsp程序?非常感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-6-12 16:48:43 | 显示全部楼层
写了一个lisp程序,可以参考看看

  1. (DEFUN C:RT (/              a               ent        ent1         et          lineangle
  2.              linelist1               linelist2         linept1  linept2
  3.              n              name     s
  4.             )
  5.   (setq s (ssget))
  6.   (setq et (entget (car (entsel "\n选择角度线:"))))
  7.   (setq linelist1 (assoc 10 et))
  8.   (setq linelist2 (assoc 11 et))
  9.   (setq linept1 (list (nth 1 linelist1) (nth 2 linelist1)))
  10.   (setq linept2 (list (nth 1 linelist2) (nth 2 linelist2)))
  11.   (setq lineangle (angle linept1 linept2))
  12.   (if (< 1.57 lineangle 3.14)
  13.     (setq lineangle (- lineangle 3.14))
  14.   )
  15.   (if (< 3.14 lineangle 4.71)
  16.     (setq lineangle (- lineangle 3.14))
  17.   )
  18.   (setq n (sslength s))
  19.   (setq a 1)
  20.   (while (<= a n)
  21.     (setq name (ssname s (- a 1)))
  22.     (setq ent (entget name))
  23.     (setq ent1 (subst (cons 50 lineangle) (assoc 50 ent) ent))
  24.     (entmod ent1)
  25.     (setq a (+ a 1))
  26.   )
  27. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-20 14:37:43 | 显示全部楼层
不错,可以实现
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-20 14:53:24 | 显示全部楼层
再加上选线的两头 一面是正 一面是反 就更加完善了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-12 18:24:00 | 显示全部楼层
好东东,找了它好久啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-12 22:02:37 | 显示全部楼层
内部函数没贴。大意是选线,按线的切线方向定文字转角,再移到原来的文字中点位置(偷懒用move)



  1. (defun c:wztj(/ A A1 E0 E1 E11 EN0 P1 PZX0 PZX1);;;文字同角;;
  2.   (undo_begin)
  3.   (mapcar 'setvar '("cmdecho""pickbox""aperture""osmode""blipmode") '(0 4 4 512 0))
  4.   (setq e0(cy_entsel '((0 . "TEXT")) "\n选择要 与线同角 的文字:"))
  5.   (if e0(progn
  6.     (setq e1(cy_entsel '((0 . "*LINE,CIRCLE,ARC,ELLIPSE,TEXT")) "\n选择参照的线或曲线:"))
  7.     (if e1(progn
  8.       (setq e11(car e1) p1(osnap (cadr e1) "nea")
  9.             a(cy_qd_jd e11 p1)
  10.             a1(cy_txta a 1)
  11.             en0(entget (car e0))pzx0(cy_textb_m en0)
  12.             en0(subst (cons 50 a1)(assoc 50 en0)en0))
  13.       (setq en0(entmod en0))
  14.       (setq pzx1(cy_textb_m en0))
  15.       (mapcar 'setvar '("pickbox""aperture""osmode") '(0 1 0))
  16.       (command "move" (cdr (car en0)) "" pzx1 pzx0)
  17.       (mapcar 'setvar '("pickbox""aperture""osmode") '(4 4 32))
  18.     ) )
  19.   ) )
  20.   (mapcar 'setvar '("cmdecho""pickbox""aperture""osmode""blipmode") '(1 4 4 32 1))
  21.   (undo_end)(princ)
  22. )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-14 14:19:17 | 显示全部楼层
还蛮不错的软件,谢谢楼主,如果能把实物也能平行于线的话那该多好啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-19 11:15:01 | 显示全部楼层
;文字与直线平行
(DEFUN C:test(/ LINEENT TEXTENT LINEANGLE PTS PTE)
(vl-load-com)
(SETQ LINEEN (ENTSEL"\n选择直线"))
(if (= (cdr(assoc 0 (entget(car lineen)))) "LWPOLYLINE")
(PROGN
(command "explode" (car lineen) "")
(alert "\n将多义线分解,请选择直线")
(SETQ LINEEN (ENTSEL"\n选择直线"))
(redraw (car lineen) 3)
(IF LINEEN
(PROGN
(SETQ LINEENT (ENTGET (CAR LINEEN)))
(SETQ PTS (cdr(assoc 10 LINEENT)))
(SETQ PTE (cdr(assoc 11 LINEENT)))
(SETQ LINEANGLE (ANGLE PTS PTE))
(SETQ TEXTEN (ENTSEL "\n选择文字"))
(redraw (car lineen) 4)
(IF TEXTEN
(PROGN
(setq obj (vlax-ename->vla-object (car texten)))
(vla-put-rotation obj LINEANGLE)
)))))
(progn
(redraw (car lineen) 3)
(SETQ LINEENT (ENTGET (CAR LINEEN)))
(SETQ PTS (cdr(assoc 10 LINEENT)))
(SETQ PTE (cdr(assoc 11 LINEENT)))
(SETQ LINEANGLE (ANGLE PTS PTE))
(SETQ TEXTEN (ENTSEL "\n选择文字"))
(redraw (car lineen) 4)
(IF TEXTEN
(PROGN
(setq obj (vlax-ename->vla-object (car texten)))
(vla-put-rotation obj LINEANGLE)
))))
(princ));DEFUN
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-7-19 13:14:34 | 显示全部楼层
注意对 LINEANGLE 进行"格式化" 使字的方向符合制图规范
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-10-22 15:41:16 | 显示全部楼层
这个程序不错哦.借用了..谢谢各位高手
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-10-23 06:33:13 | 显示全部楼层
不错的文字平行程序有这程式真是不错
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-31 08:00:20 | 显示全部楼层
6楼的内部函数没贴,根本就无法使用吗,何不一齐贴出来.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-1-26 01:15:11 | 显示全部楼层
在70个小工具里有这个功能
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-5-2 12:09:06 | 显示全部楼层
很好用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-5-31 21:01:06 | 显示全部楼层
在70个小工具里有这个功能.按线对齐,但几个人都是编的程序,在编程中才能不断提高自己啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 21:36 , Processed in 0.472914 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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