找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2364|回复: 13

[求助] 文字在直线处断开

[复制链接]
发表于 2013-5-25 14:35:14 | 显示全部楼层 |阅读模式
悬赏20D豆未解决
执行前:
1.jpg


执行后:
2.jpg

评分

参与人数 1D豆 +3 收起 理由
炫翔 + 3 出题引导交流奖!

查看全部评分

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

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-5-25 14:39:35 | 显示全部楼层
插个楼,上次的悬赏如果不知道如何结算,看看这个帖子:http://bbs.xdcad.net/thread-668286-1-1.html

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-5-25 14:49:43 | 显示全部楼层
这个功能不需要另外编写程序,如果需要直线真正断开,就用剪切命令,如果不要真正断开,就用ET的textmask功能。

评分

参与人数 1D豆 +3 收起 理由
炫翔 + 3 及时回复奖!

查看全部评分

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

使用道具 举报

已领礼包: 1632个

财富等级: 堆金积玉

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-5-25 15:13:41 | 显示全部楼层
ll_j 发表于 2013-5-25 14:49
这个功能不需要另外编写程序,如果需要直线真正断开,就用剪切命令,如果不要真正断开,就用ET的textmask功 ...

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

使用道具 举报

已领礼包: 1742个

财富等级: 堆金积玉

发表于 2013-5-25 15:21:37 | 显示全部楼层
看图片,貌似不是遮蔽,
给个简单笨拙的思路:
获取文字的对角坐标,画多段线,选取直线用矩形来修剪,删除矩形
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

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

使用道具 举报

发表于 2013-5-25 15:47:36 | 显示全部楼层
  1. (defun c:tt ()
  2.   (setq ss (ssget '((0 . "text"))))
  3.   (repeat (setq n (sslength ss))
  4.     (setq e (ssname ss (setq n (1- n))))
  5.     (vla-GetBoundingBox (vlax-ename->vla-object e) 'll 'ur)
  6.     (setq ll (vlax-safearray->list ll)
  7.           ur (vlax-safearray->list ur)
  8.           cp (mapcar '* '(0.5 0.5 0.5) (mapcar '+ ll ur))
  9.     )
  10.     (setq s (ssget "c"
  11.                    (trans ll 0 1)
  12.                    (trans ur 0 1)
  13.                    '((0 . "*line,arc,ellipse,circle"))
  14.             )
  15.     )
  16.     (if        s
  17.       (progn
  18.       (command "_trim" e "" (list (ssname s 0) (trans cp 0 1)) "")
  19.       )
  20.     )

  21.   )
  22. )

评分

参与人数 3D豆 +20 收起 理由
XDSoft + 10 热心帮忙奖!
牢固 + 5 热心帮忙奖!
炫翔 + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-5-25 16:26:11 | 显示全部楼层
炫翔 发表于 2013-5-25 15:21
看图片,貌似不是遮蔽,
给个简单笨拙的思路:
获取文字的对角坐标,画多段线,选取直线用矩形来修剪,删 ...

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

使用道具 举报

发表于 2013-5-25 18:51:37 | 显示全部楼层
执行后效果:
未命名2.jpg
  1. (defun c:test(/ ss->objlist trimtext SS textss liness textobjs lineobjs)
  2. (defun ss->objlist(ss class / n i objs)
  3.   (setq n (sslength ss))
  4.   (setq i 0)
  5.   (repeat n
  6.    (setq obj(vlax-ename->vla-object (ssname ss i)))
  7.    (if(=( vla-get-objectname obj) class)
  8.    (setq objs(cons obj objs))
  9.    )
  10.    (setq i(1+ i))
  11.    )
  12.   (setq objs(reverse objs))
  13.   )
  14. (defun trimtext(textobj lineobj / error pts pt1 pt2 startpt ownerobj newline doc Ownerobj)
  15.   (setq error(vl-catch-all-error-p(setq pts(vl-catch-all-apply 'vlax-safearray->list(list(vlax-variant-value (vla-IntersectWith lineobj textobj 0)))))))
  16.   (if(and (not error)(=(length pts)6))
  17.    (progn
  18.     (setq pt1 (list (car pts)(cadr pts)(caddr pts))
  19.      pt2(list (nth 3 pts)(nth 4 pts)(nth 5 pts)))
  20.     (setq startpt(vlax-get lineobj 'StartPoint))
  21.     (setq doc(vlax-get (vlax-get-acad-object) 'ActiveDocument))
  22.     (setq Ownerobj(vla-objectidtoobject doc (vla-get-ownerid lineobj )))
  23.     (if (<(distance startpt pt1)(distance startpt pt2))
  24.      (progn
  25.       (setq newline(vla-addline ownerobj (vlax-3d-point pt2)(vla-get-endpoint lineobj)))
  26.       (vlax-put lineobj 'EndPoint pt1)
  27.       )
  28.      (progn
  29.       (setq newlien(vla-addline ownerobj (vlax-3d-point pt1)(vla-get-endpoint lineobj)))
  30.       (vlax-put lineobj 'EndPoint pt2)
  31.       )
  32.      )
  33.     )
  34.    )
  35.   newline
  36. )
  37.    (vl-load-com)
  38. (princ "\n选择直线和文字")
  39. (if(setq ss(ssget '((-4 . "<OR")(0 . "TEXT")(0 . "LINE")(-4 . "OR>"))))
  40.   (progn
  41.    (setq textobjs(ss->objlist ss "AcDbText"))
  42.    (setq lineobjs(ss->objlist ss "AcDbLine"))
  43.    (if(and textobjs textobjs)
  44.     (progn
  45.      (foreach textobj textobjs
  46.       (foreach lineobj lineobjs
  47.        (if(setq newline(trimtext textobj lineobj))
  48.          (setq lineobjs(cons newline  lineobjs ))
  49.          )
  50.        )
  51.       )
  52.      )
  53.     )
  54.    )
  55.   )
  56. )

评分

参与人数 2D豆 +15 收起 理由
XDSoft + 10 热心帮忙奖!
牢固 + 5 热心帮忙奖!

查看全部评分

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

使用道具 举报

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

使用道具 举报

已领礼包: 9333个

财富等级: 富甲天下

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

使用道具 举报

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

使用道具 举报

已领礼包: 466个

财富等级: 日进斗金

发表于 2017-6-23 01:13:24 | 显示全部楼层
10楼的程序很好用,就是将直线打断后,文字后的线的图层变为文字的图层了。能不能改为不改变图层,还是用打断前的图层。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 05:38 , Processed in 0.224020 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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