[求助]ELEVATION值加常数!
<P>(defun c:qq1()<BR>(setq li(entsel"\n(wei209:2004-11-05)请选择你要改的PL线:"))<BR>(setq x(getreal"\n(wei209:2004-11-05)请输入新的值:"))<BR>(command"change" li "" "p" "e" x "c" 1 "t" "8110000" "")<BR>(command "pedit" li "w" "0" "")<BR>)</P><P>我用此命令把ELEVATION值都改好了,再次打开时发现自己有张图里的PL所有ELEVATION值整体高了20,晕~~~~~!!!谁给个方法,对所在图层的线形的ELEVATION值整体减去或加上一个你输入的常数呢?谢谢!</P> <P>我的问题太简单了?没人搭理我!!</P> 要给PL线整体加(减)常数是不能用CHANGE命令的吧,可能要用ENTMOD才能实现. 给个例子来呦! <P>move z -20</P>
<P> </P> <P>行吗?我试试!</P> <P>还是自己写吧</P>
<P>Dim acadDoc As AcadDocument<BR>Set acadDoc = acadApp.ActiveDocument<BR> On Error Resume Next</P>
<P>Dim entity As AcadObject<BR>Dim i As Integer<BR>Dim j As Integer<BR>Dim rr As Integer<BR>rr = Text1.Text<BR>If acadDoc.ModelSpace.Count <> 0 Then<BR> i = acadDoc.ModelSpace.Count<BR> For j = 0 To i - 1<BR> Set entity = acadDoc.ModelSpace.Item(j)<BR> If entity.Layer = "DGX" Or entity.Layer = "dgx" Then<BR> entity.Elevation = entity.Elevation + rr<BR> entity.Update<BR> End If<BR> Next j<BR>Else<BR> MsgBox "在模型空间中没有对象存在。"<BR>End If<BR>MsgBox "完成"<BR>End Sub</P>
<P>问题:1.反映太慢没有LISP快</P>
<P> 2.不知道处理到第几根线了</P>
<P>想法:请高手加上点,让处理线时有个进度条显示!</P> <DIV>5楼的办法挺好的嘛,为什么不试一试呢?你参考一下下面这段代码:</DIV>
<DIV>(defun c:TEST(/ E H)<BR> (setq H 20 E nil)<BR> (setq E (ssget "X" (list (cons 8 "DGX") (cons 0 "*POLYLINE"))))<BR> (command "_.move" E "" '(0 0 0) "")<BR> (command "_.move" E "" (list 0 0 H) "")<BR>) </DIV> <P>不错,比VB快多了!</P>
[原创]
ELEVATION是把图纸里整体标高统一降低或者增加 CAD专业技术博客:<a href="http://www.co120.com">www.co120.com</a>
页:
[1]