I’m basically trying to cut down on the number of steps it takes to use the Rotated Dimension command (as well as build skills for future tasks). I’ve tried a TON of different things and cannot get the command function to recognize any point values I’ve obtained from the GetPoint methods. The code below is where I gave up, not necessarily indicative of the direction or approach I need to take.
I’ve looked up various examples and none really mirror what I’m trying to do. I see scripts where the authors have successfully put actual numbers (opposed to variables) into Rhino.Command, but dealing with variables thus far… no luck.
There is no AddRotatedDimension method (although I believe it exists for other methods).
Basically, I just need to be able to pass points stored as variables in any way, shape or form to the command line, but so far no luck.
Option Explicit
'Script written by <insert name>
'Script copyrighted by <insert company name>
'Script version Monday, 11 October 2021 11:24:03
Call Main()
Sub Main()
Dim arrPT1
Dim arrPT2
Dim strPT1
Dim strPT2
arrPT1 = Rhino.GetPoint("Pick first point")
arrPT2 = Rhino.GetPoint("Pick second point", arrPT1)
strPT1 = ("(" & arrPt1(0) & "," & arrPt1(1) & "," & arrPt1(2) & ")")
strPT2 = ("(" & arrPt2(0) & "," & arrPt2(1) & "," & arrPt2(2) & ")")
Call Rhino.Print("Start Point = (" & strPT1 & ")")
Call Rhino.Print("End Point = (" & strPT2 & ")")
Rhino.Command "_-dimRotated"
Rhino.Command strPT1
Rhino.Command strPT2
Rhino.Command strPT1
Rhino.Command strPT2
End Sub
You are correct in that the “add” method is much better than fighting with the command line command line. But I couldn’t find the addRotatedDimension (or AddDimRotated) - but after looking just now I think it might be the addLinearDimension method.
There is a subtle different between the “aligned” and “rotated” dimensions that you may or may not already know about depending if you use either of them.
I don’t need to go very far into Rhino Script to get what I need from it, hence why I’m trying to jerry-rig something, just get it working really… before I go onto bigger stuff. I’m going to take the C# approach as I’ve found that I can use the macro for just about everything I’ll need until my C# skills allow me to do more complex stuff. I jumped head-first into the Rhino script because it is so similar to VBA; similar but different though.
Here’s the finished code which should work, but… as Tom mentioned, there could be regional string conversion issues:
Option Explicit
Call Main()
Sub Main()
Dim arrPT1
Dim arrPT2
Dim strPT1
Dim strPT2
Dim strCommand
arrPT1 = Rhino.GetPoint("Pick first point")
arrPT2 = Rhino.GetPoint("Pick second point", arrPT1)
strPT1 = (arrPt1(0) & "," & arrPt1(1) & "," & arrPt1(2))
strPT2 = (arrPt2(0) & "," & arrPt2(1) & "," & arrPt2(2))
Call Rhino.Print("Start Point = (" & strPT1 & ")")
Call Rhino.Print("End Point = (" & strPT2 & ")")
strCommand = "_dimRotated" & " " & strPT1 & " " & strPT2 & " " & strPT1 & " " & strPT2
Call Rhino.Command(strCommand)
End Sub