[求助]
Sub addline1()<BR>Dim lineobj As AcadLine<BR>Dim pt1(0 To 2) As Double, pt2(0 To 2) As Double<BR>pt1(0) = 1000: pt1(1) = 1000: pt1(2) = 0<BR>pt2(0) = 1200: pt1(1) = 1000: pt1(2) = 0<BR>Set lineobj = ThisDrawing.ModelSpace.AddLine(pt1, pt2)<BR>End Sub<BR>Sub rotateline()<BR>Dim lineobj As AcadLine<BR>Dim pt1(0 To 2) As Double, pt2(0 To 2) As Double<BR>pt1(0) = 1000: pt1(1) = 1000: pt1(2) = 0<BR>pt2(0) = 1200: pt1(1) = 1000: pt1(2) = 0<BR>Set lineobj = ThisDrawing.ModelSpace.AddLine(pt1, pt2)<BR>ZoomAll<BR>Dim basepoint(0 To 2) As Double<BR>Dim rotationangle As Double<BR>dim angle as double<BR>basepoint(0) = pt1(0): basepoint(1) = pt1(1): basepoint(2) = pt1(2)<BR>rotationangle = ThisDrawing.Utility.GetAngle(, "指定角度")<BR>Angle = Angle *3.1415926/180<BR>tbangle = Round(angle, 2)<BR>rotationangle=tbangle<BR>linobj.Rotate basepoint, rotationangle<BR>lineobj.Update<BR>End Sub 'Angle = Angle *3.1415926/180<BR>'tbangle = Round(angle, 2)<BR>'rotationangle=tbangle'上面3句不要啊!<BR>'linobj.Rotate basepoint, rotationangle'此句linobj与前不一致啊!应该为lineobj<BR> 此程序运行不出来 急盼高手指点,要不然毕不了业了,救命呀Public Function getpoint(pt As Variant, x As Double, y As Double) As Variant<BR>Dim pttarget(0 To 2) As Double<BR>pttarget(0) = pt(0) + x: pttarget(1) = pt(1) + y: pttarget(2) = 0<BR>getpoint = pttarget<BR>Public Sub Testline()<BR>Dim d1, d3, R1 As Double<BR>Dim p1 As Variant<BR>Dim p2, p3, p4, p5 As Variant<BR>Dim ln1, ln2, ln3, ln4 As AcadLine<BR>d1 = 15<BR>R1 = 9<BR>d3 = 4.1<BR>p1(0) = 100: p1(1) = 100: p1(2) = 0<BR>p2 = getpoint(p1, 0, d1 / 2)<BR>p3 = getpoint(p1, 0, R1 - 0.5 - d3 / 2)<BR>p4 = getpoint(p3, 0.5, 0.5)<BR>p5 = getpoint(pt4, 0, d3)<BR>Set ln1 = ThisDrawing.ModelSpace.addline(p1, p2)<BR>Set ln2 = ThisDrawing.ModelSpace.addline(p2, p3)<BR>Set ln3 = ThisDrawing.ModelSpace.addline(p3, p4)<BR>Set ln4 = ThisDrawing.ModelSpace.addline(p4, p5)<BR>End Sub
<BR> Dim ln1, ln2, ln3, ln4 As AcadLine
VB里没有这种写法,如果这么写表示ln1, ln2, ln3是变体,ln4 是AcadLine
Public Sub Testline()<BR>Dim d1 As Double, d3 As Double, R1 As Double<BR>Dim p1(2) As Double<BR>Dim p2, p3, p4, p5<BR>Dim ln1 As AcadLine, ln2 As AcadLine, ln3 As AcadLine, ln4 As AcadLine<BR>d1 = 15<BR>R1 = 9<BR>d3 = 4.1<BR>p1(0) = 100: p1(1) = 100: p1(2) = 0<BR>p2 = getpoint(p1, 0#, d1 / 2)<BR>p3 = getpoint(p1, 0#, R1 - 0.5 - d3 / 2)<BR>p4 = getpoint(p3, 0.5, 0.5)<BR>p5 = getpoint(p4, 0#, d3)<BR>Set ln1 = ThisDrawing.ModelSpace.AddLine(p1, p2)<BR>Set ln2 = ThisDrawing.ModelSpace.AddLine(p2, p3)<BR>Set ln3 = ThisDrawing.ModelSpace.AddLine(p3, p4)<BR>Set ln4 = ThisDrawing.ModelSpace.AddLine(p4, p5)<BR>End Sub
[VBA]谢谢你,有了你的帮忙程序终于运行出来了,可以再帮一下吗,再行行好吧ok?
Sub offsetline()<BR>Dim lineobj As AcadLine<BR>Dim p1(0 To 2) As Double<BR>Dim p2(0 To 2) As Double<BR>p1(0) = 50: p1(1) = 50: p1(2) = 0<BR>p2(0) = 60: p2(1) = 60: p2(2) = 0<BR>Set lineobj = ThisDrawing.ModelSpace.AddLine(p1, p2)<BR>lineobj.Closed = True<BR>ZoomAll<BR>Dim offsetobj As Variant<BR>offsetobj = lineobj1.Offset(0.25)<BR>End Sub<BR> Sub offsetline()<BR>Dim lineobj As AcadLine<BR>Dim p1(0 To 2) As Double<BR>Dim p2(0 To 2) As Double<BR>p1(0) = 50: p1(1) = 50: p1(2) = 0<BR>p2(0) = 60: p2(1) = 60: p2(2) = 0<BR>Set lineobj = ThisDrawing.ModelSpace.AddLine(p1, p2)<BR> '去除该行lineobj.Closed = True<BR>ZoomAll<BR>Dim offsetobj As Variant<BR>offsetobj = lineobj.Offset(0.25) '该处原来为offsetobj 1= lineobj.Offset(0.25)<BR><BR>End Sub<BR>两条直线怎么延伸到相交,不相交怎么办帮修改一下程序
Sub lengthenline()<BR>Dim lineobj As AcadLine<BR>Dim p1(0 To 2) As Double<BR>Dim p2(0 To 2) As Double<BR>p1(0) = 50: p1(1) = 50: p1(2) = 0<BR>p2(0) = 60: p2(1) = 60: p2(2) = 0<BR>setlineobj1 = ThisDrawing.ModelSpace.AddLine(p1, p2)<BR>lineobj1.Update<BR>Dim p3(0 To 2) As Double<BR>Dim p4(0 To 2) As Double<BR>p3(0) = 40: p3(1) = 80: p3(2) = 0<BR>p4(0) = 100: p4(1) = 80: p4(2) = 0<BR>Set lineobj2 = ThisDrawing.ModelSpace.AddLine(p3, p4)<BR>lineobj1.EndPoint = lineobj2<BR>lineobj1.Update<BR>End Sub[VBA]再帮一下忙嘛,帮改一下程序
Sub lengthenline()<BR>Dim lineobj As AcadLine<BR>Dim p1(0 To 2) As Double<BR>Dim p2(0 To 2) As Double<BR>p1(0) = 50: p1(1) = 50: p1(2) = 0<BR>p2(0) = 60: p2(1) = 60: p2(2) = 0<BR>setlineobj1 = ThisDrawing.ModelSpace.AddLine(p1, p2)<BR>lineobj1.Update<BR>Dim p3(0 To 2) As Double<BR>Dim p4(0 To 2) As Double<BR>p3(0) = 40: p3(1) = 80: p3(2) = 0<BR>p4(0) = 100: p4(1) = 80: p4(2) = 0<BR>Set lineobj2 = ThisDrawing.ModelSpace.AddLine(p3, p4)<BR>lineobj1.EndPoint = lineobj2<BR>lineobj1.Update<BR>End Sub
页:
[1]