[求助]标注问题
<p>最近接了套扇形建筑,标注大部分都是对齐标注,修改起来极不方便,哪位朋友能帮编个,对齐标注转线性标注 和线性标注转对齐标注。</p><p>在下先谢了。</p> <p>我试着编了一个,但发现在2004下用不了,在R14下却可以用,也不知道为什么,可能2004与R14的结构不一样了。</p><p>如果能找到2004以上的方法更好,但我帮不了你了,如果不行,你可以将你的图形转为R14,再用R14打开,修改好尺寸后再用2004或以上的打开。但不要用转换器,用2007另存为R14。你也可以把图放上来,我可以给你转。</p> 修改了一下,这个可在2004下使用了,在其它未做调试。 <p>又修改了一下,原来这样也行!</p><p>当然,这样改尺寸是会变的,不变是不可能的,不然就不是实际尺寸了。</p><p> </p> <p>我试了下06的不行,找了个04的,转换了标注会乱跳</p><p> 我现在只能用线性标注去旋转角度,工作量挺大</p> 本帖最后由 作者 于 2007-6-22 9:40:12 编辑 <br /><br /> <p>那试试这个吧,这个将你原来的尺寸删除,而新建一个,我用entmod不能成功,改用了entmake</p><p>(defun c:g-l (/ ss n lst)<br/> (setq ss (ssget '((0 . "dimension"))))<br/> (if ss<br/> (progn<br/> (setq n 0)<br/> (repeat (sslength ss)<br/> (setq lst (entget (ssname ss n)))</p><p> (setq ang (angle (cdr (assoc 13 lst)) (cdr (assoc 14 lst))))<br/> (setq lst<br/> (list</p><p> (assoc 0 lst)<br/> '(100 . "AcDbEntity")</p><p> '(100 . "AcDbDimension")<br/> (assoc 2 lst)<br/> (assoc 10 lst)<br/> (assoc 11 lst)</p><p> '(70 . 32)<br/> (assoc 1 lst)<br/> (assoc 3 lst)<br/> '(100 . "AcDbAlignedDimension")<br/> (assoc 13 lst)<br/> (assoc 14 lst)<br/> (cons 50 ang)<br/> '(100<br/> .<br/> "AcDbRotatedDimension"<br/> )<br/> );list</p><p> );setq </p><p> (entdel (ssname ss n))<br/> (entmake lst)<br/> (setq n (1+ n))<br/> );repeat<br/> );progn<br/> );end if<br/>(princ"\n转换完成!")<br/> (princ)<br/>)</p> <p>上面那个我在2007下试了,可以用,如果要将线性改为对齐,可用下面的代码,但尺寸位置可能就变了。</p><p>(defun c:l-g (/ ss n lst)<br/> (setq ss (ssget '((0 . "dimension"))))<br/> (if ss<br/> (progn<br/> (setq n 0)<br/> (repeat (sslength ss)<br/> (setq lst (entget (ssname ss n)))</p><p>;;; (setq ang (angle (cdr (assoc 13 lst)) (cdr (assoc 14 lst))))<br/> (setq lst<br/> (list</p><p> (assoc 0 lst)<br/> '(100 . "AcDbEntity")</p><p> '(100 . "AcDbDimension")<br/> (assoc 2 lst)<br/> (assoc 10 lst)<br/> (assoc 11 lst)</p><p> '(70 . 33)<br/> (assoc 1 lst)<br/> (assoc 3 lst)<br/> '(100 . "AcDbAlignedDimension")<br/> (assoc 13 lst)<br/> (assoc 14 lst)<br/> (cons 50 0)<br/>;;; '(100<br/>;;; .<br/>;;; "AcDbRotatedDimension"<br/>;;; )<br/> );list</p><p> );setq </p><p> (entdel (ssname ss n))<br/> (entmake lst)<br/> (setq n (1+ n))<br/> );repeat<br/> );progn<br/> );end if<br/>(princ"\n转换完成!")<br/> (princ)<br/>)<br/></p> <p>感谢英雄无敌帮了我大忙</p><p>线性转对齐时,长短脚不一样确实会乱跳,幸好我有剪标注线的</p><p>非常好,再次QQQ英雄无敌</p> 能给你带来方便我也很高兴,在这个过程中我也学到了不少,有些东西当你无法ENTMOD的时候,你可以ENTMAKE它。 <p>修改了一下,修正了线性转对齐时,标注会改变的问题,但程序是以保留第14脚,修改第13脚的位置来实现的,没有采用保留短脚或长脚的方法,但可以实现。</p><p> </p>
页:
[1]
2