Gonda Posted January 12, 2020 Share Posted January 12, 2020 Hi All, So, I'm running into a bit of an issue with Spotlight's Data Cable Worksheet. Apparently, the option to include the 'End Label Text' in the worksheet generation doesn't exist. I figured it would be fairly trivial to write a python script to crawl all Data Cable Objects in the drawing and read the 'Start Label Text' & 'End Label Text' fields and write them into the 'User Field 1' & 'User Field 2' fields. The following code accomplishes this for a lighting device: import vs def xyz(current_light): xypoint = vs.GetSymLoc(current_light) zpoint = vs.Get3DCntr(current_light) vs.SetRField(current_light,'Lighting Device','User Field 7',str('{:.3f}'.format(xypoint[0]/12)) + "'") vs.SetRField(current_light,'Lighting Device','User Field 8',str('{:.3f}'.format(xypoint[1]/12)) + "'") vs.SetRField(current_light,'Lighting Device','User Field 9',str('{:.3f}'.format(zpoint[1]/12)) + "'"); vs.ForEachObject(xyz,"INSYMBOL & (PON='Lighting Device')"); I adapted this code as follows to try to get it to work for a Data Cable: import vs def label2user(current_cable): start = vs.GetRField(current_cable,'Data Cable VW','Start Label Text') end = vs.GetRField(current_cable,'Data Cable VW','End Label Text') vs.SetRField(current_cable,'Data Cable VW','Rack ID',"barf") vs.SetRField(current_cable,'Data Cable VW','Box ID',str(end)) vs.ForEachObject(label2user,"INSYMBOL & INVIEWPORT & (PON='Data Cable VW')"); Unfortunately, the second chunk of code doesn't work. I have verified by inserting a vs.AlrtDialog() into the code that it is properly reading the values from each Data Cable Object. Unfortunately, the vs.SetRField() commands seems to fail. I have also tried to write to other fields but the same results keep occurring. Anyone have any thoughts? Cheers, -gonda Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.