Excell/API/Macro/Conversion
Excell/API/Macro/Conversion
(OP)
I'm writing a macro within Excel. When I transfer a cell value into a SolidWorks model dimension I divide the cell value by 1000 to get a millimeter value for the model, as in the following example:
Part.Parameter("Dim@Sketch@Model.SLDPRT").SystemValue = [cell].Value / 1000
This works fine for linear dimensions.
Problem: I want to transfer an angular value. I can't seem to figure out what the relationship is during the transfer. For instance, when I want to transfer the value of 36°, it transforms into 2063°.
Does anyone have a suggestion for a conversion factor? It doesn't appear to even be a radian value, ie. 36/360*2pi = .628pi. The closest that I can get is (36/1000) * (36/2), but this yields 37°+.
I'm totally baffled.
Part.Parameter("Dim@Sketch@Model.SLDPRT").SystemValue = [cell].Value / 1000
This works fine for linear dimensions.
Problem: I want to transfer an angular value. I can't seem to figure out what the relationship is during the transfer. For instance, when I want to transfer the value of 36°, it transforms into 2063°.
Does anyone have a suggestion for a conversion factor? It doesn't appear to even be a radian value, ie. 36/360*2pi = .628pi. The closest that I can get is (36/1000) * (36/2), but this yields 37°+.
I'm totally baffled.
Regards,
Christopher Zona
Litens Automotive Partnership
Concord, Ontario, Canada






RE: Excell/API/Macro/Conversion
1 Radian = 360/2pi = 360/2/pi = 57.29577951°
So your angular cell conversion should be Value/(360/(2pi))
Proof:- 2063/57.29577951 = 36.00614247
Note; the 2063° figure you quote, must have been rounded off.
RE: Excell/API/Macro/Conversion
I tried using pi() as you would type it into a cell formula but the macro doesn't like that.
For now I am using 3.14159, which close enough. It returns 35.99996959deg, but I am a bit of a perfectionist and would like to see 36.
Any ideas?
Regards,
Z
RE: Excell/API/Macro/Conversion
Const pi As Double = 3.14159265358979
Regards,
Z
RE: Excell/API/Macro/Conversion
Or use 3.14159265358979..........
RE: Excell/API/Macro/Conversion
Maybe it would help to buffer the data transfer. Pass the Excel cell values to a variable, then pass the variable value to the SolidWorks entity.
http://www.EsoxRepublic.com
RE: Excell/API/Macro/Conversion