xd-xdcad 发表于 2008-5-19 10:45:00

[求助]文字表格居中

<p>引自shlisp工具</p><p>当重复执行命令时,有时图纸会增加了一个表格,与原先的表格重叠<br/>谢谢解决,最好不要出现重叠的表格</p>

zhangrunze 发表于 2024-4-15 11:01:45

注册 发表于 2013-6-12 09:45
能否实现多行文字表格居中?

运行了只支持单行文字~
单行文字才能选中~

huxu823 发表于 2020-6-9 10:04:07

很实用,用起来和贱人工具箱5.8里那个一样

caoyin 发表于 2008-5-19 11:01:00

没看出“表格”是什么意思!!

sailorcwx 发表于 2008-5-19 12:11:00

程序不全,测试不了

xd-xdcad 发表于 2008-5-19 14:54:00

本帖最后由 作者 于 2008-5-19 14:58:03 编辑 <br /><br /> caoyin发表于2008-5-19 11:01:00static/image/common/back.gif没看出“表格”是什么意思!!

<p>表格——例如由直线或多段线形成的封闭图形,执行该命令后,表格内的文字自动定位在表格的中心</p>以下是引用<font face="Verdana" color="#61b713">sailorcwx</font>的发言:<p>程序不全,测试不了</p>

命令JZ,试验正常

caoyin 发表于 2008-5-19 16:57:00

<p>(vl-load-com)<br/>(defun c:JZ(/ err)<br/>(defun algion (msg /&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lst&nbsp;&nbsp;&nbsp;&nbsp; i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vlalst&nbsp; boxlst&nbsp; x<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cor1&nbsp;&nbsp;&nbsp; cor2&nbsp;&nbsp;&nbsp; findboxpt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newboxpt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; en1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; en&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enlst&nbsp;&nbsp; y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (princ msg)<br/>&nbsp; (setq ss (ssget '((0 . "text"))))<br/>&nbsp; (setq lst nil)<br/>&nbsp; (setq i 0)<br/>&nbsp; (repeat (sslength ss)<br/>&nbsp;&nbsp;&nbsp; (setq lst (cons (ssname ss i) lst))<br/>&nbsp;&nbsp;&nbsp; (setq i (1+ i))<br/>&nbsp; )<br/>&nbsp; (setq vlalst (mapcar 'vlax-ename-&gt;vla-object lst))<br/>&nbsp; (setq&nbsp;&nbsp;&nbsp; boxlst (mapcar '(lambda&nbsp;&nbsp;&nbsp; (x / cor1 cor2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vla-GetBoundingBox x 'cor1 'cor2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (list&nbsp;&nbsp;&nbsp; (vlax-safearray-&gt;list cor1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-safearray-&gt;list cor2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vlalst<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (setq<br/>&nbsp;&nbsp;&nbsp; findboxpt (mapcar '(lambda (x)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar&nbsp;&nbsp;&nbsp; (car x)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (angle (car x) (cadr x))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (/ (DISTANCE (car x) (cadr x)) 2.0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boxlst<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (setq&nbsp;&nbsp;&nbsp; newboxpt (mapcar '(lambda (x)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq en1 (entlast))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vl-cmdf "_boundary" x "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq en (entlast))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if&nbsp;&nbsp;&nbsp; (not (equal en1 en))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq enlst (entget en))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq lst (vl-remove-if-not<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(lambda (y) (= (car y) 10))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enlst<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq cor1 (vl-remove 10 (car lst))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cor2 (vl-remove 10 (nth 2 lst))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/><font color="#f70909">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (while (setq en1 (entnext en1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entdel en1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar cor1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (angle cor1 cor2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (/ (DISTANCE cor1 cor2) 2.0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; findboxpt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (mapcar '(lambda (x y y2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vla-move x (vlax-3d-point y) (vlax-3d-point y2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vlalst<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; findboxpt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newboxpt<br/>&nbsp; )</p><p>)<br/>(setq err(VL-CATCH-ALL-APPLY 'algion (list "\n师兄 选择单行文字: ")))<br/>&nbsp; (princ)<br/>&nbsp; )</p><p></p>

xd-xdcad 发表于 2008-5-19 22:35:00

本帖最后由 作者 于 2008-5-20 7:48:02 编辑 <br /><br /> caoyin发表于2008-5-19 16:57:00static/image/common/back.gif(vl-load-com)(defun c:JZ(/ err)(defun algion (msg /&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lst&nbsp;&nbsp;&nbsp;&nbsp; i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp

<p>已创建 1 个多段线,还是没有成功,多次重复该命令,出现同样问题</p>

caoyin 发表于 2008-5-20 08:55:00

<p>已创建 1 个多段线,还是没有成功,多次重复该命令,出现同样问题</p><p>我测试没有问题啊。</p><p>出现这个问题的原因是:在封闭区域存在孤岛的时候,BOUNDARY 产生的对象数量 &gt;1,而你引用的原程序中只删除一个图元,</p><p><font color="#f70909">(while (setq en1 (entnext en1))<br/>&nbsp;&nbsp; (entdel en1)<br/>)</font></p><p>确保删除</p><p><font color="#3300ff">(setq en1 (entlast))</font><br/>(vl-cmdf "_boundary" x "")</p><p>....</p><p>之后的产生的所有图元</p>

xd-xdcad 发表于 2008-5-20 11:04:00

<p>现在问题依旧,简单举例:例如简单的一个矩形,里面有一个文字,</p><p>执行命令JZ,出现效果:文字位于矩形中心——正常;</p><p>重复执行命令JZ,出现效果:文字位置不变,矩形却变成重叠的2个——不正常</p><p>依次重复命令N次,出现效果:矩形变成重叠的N个——不正常</p><p>我想要达到的效果就是:无论重复命令JZ几次,矩形(表格)还是1个,不会出现重叠的矩形(表格)</p><p>谢谢</p>

caoyin 发表于 2008-5-20 11:48:00

<p>按照你说的测试,仍然没问题,截图如下:&nbsp;</p>

xd-xdcad 发表于 2008-5-20 15:59:00

朋友再这样试试,执行JZ命令后,直接空格再次重复命令JZ,而不是执行命令移动,我的2002版本就会出现重叠表格的现象
页: [1] 2 3
查看完整版本: [求助]文字表格居中