![]() |
|
#1
|
|||
|
|||
![]()
Looking for vba to rotate an open curve in such a way that the end nodes are on a horizontal plane. Not align the nodes per say, but rotate the shape based on the position of the nodes on the Y axis.
|
#2
|
|||
|
|||
![]() |
#3
|
|||
|
|||
![]()
Ok, just for giggles here's what I got. Find the radius of any arc.
With the shape tool select the nodes that make up the Arc or curve segment, run the macro and it tells you what the radius is. Sub FindRadius() Dim n As Node, x1 As Double, y1 As Double, x2 As Double, y2 As Double, os As ShapeRange, x#, y#, w#, h# ActiveDocument.Unit = cdrInch Optimization = True ActiveSelection.Copy ActiveLayer.Paste Set os = ActiveSelectionRange If os.Count <> 1 Then MsgBox ("Select one shape and run macro again!") ActiveShape.Curve.Nodes.First.GetPosition x1, y1 ActiveShape.Curve.Nodes.Last.GetPosition x2, y2 If x2 <> x1 Then k = -1 Else myangle = -90: GoTo here: With os(1) .RotationCenterX = x1 .RotationCenterY = y1 End With myangle = Atn((y2 - y1) / (x2 - x1)) * 180 / 3.14159265358979 here: os(1).Rotate k * myangle os.GetSize w, h MsgBox Round((h / 2) + (w * w) / (h * 8), 3) ActiveSelection.Delete Optimization = False Application.Refresh End Sub |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Incorrect distribution of the arrow on the open curve | ajesion | Macros/Add-ons | 8 | 05-05-2011 11:21 |
Macro to rotate | first5mins | General | 2 | 21-01-2010 15:57 |
macro for break curve and join curve | mgmcs | Macros/Add-ons | 2 | 26-05-2006 23:01 |
Open form when i open my template | diltech | CorelDRAW/Corel DESIGNER VBA | 1 | 10-01-2005 17:46 |
Special Rotate | ddonnahoe | CorelDRAW/Corel DESIGNER VBA | 7 | 26-04-2004 13:20 |