Jump to content

MullinRJ

Member
  • Posts

    2,017
  • Joined

  • Last visited

Posts posted by MullinRJ

  1. Hello @Janvin Lowe,

       There are several ways to convert text to outline. The most obvious is to select the "Outline" text attribute in the OIP, assuming it's available. Another way is to convert the text to poly lines with the menu item Text > Convert Text to Polylines. A third way is to use the Format Text dialog and select the Outline attribute or click its hotkey (Cmd/Ctrl-O) (MAC Only), but you also have to click OK. Lastly, a script can change the text to Outline or to Polylines. Scripts can exist in the document, or in the Plug-in library. A Menu Command Plug-in loaded in your workspace can set the text attribute to OUTLINE, and a Plug-in can have a hotkey. If you didn't put it there, this is unlikely.

     

       I just verified that text CAN show as outline in VW on a PC, but you have to access it via script. The OIP and Text menu items do not show the Outline option on a PC.

     

       It may be too late to ask, but once you had outlined text, was the object showing as Text in the OIP, or showing as a Group? Or if you didn't look at the OIP, did you still see the little "x" on the object indicating the Insertion Point? This would indicate that the Text object had the OUTLINE attribute assigned. If there was no "x" or the OIP said Group, then the text was converted to Polylines. 

     

       If you converted the text with a keystroke, check the menus under the TEXT menu for hotkeys that may be assigned to Convert Text to Polylines or Font Style > Outline. Unless you (or someone you know) edited your workspace, these menus typically do not have hotkeys, but you can add hotkeys to them with the Workspace Editor. Then check any custom menus you may have loaded for a plug-in that sets the text attribute to outline, and does it have a hotkey assigned? This is a long shot, but it is possible.

     

       If this ever happens again, before you hit Undo, check the Type of the selected object(s) in the OIP for Text or Group. After you Undo, look in the lower right of the VW window, as a message will display showing what action was undone. You can Redo (Cmd/Ctrl-Y) then Undo (Cmd/Ctrl-Z) to see the message again.

     

       I doubt this explains what happened, but if it ever happens again you should be able to track down the cause.

     

    Raymond

  2. 7 hours ago, Jesse Cogswell said:

    There's something weird with the forum's code box, it won't let me type in the code for setting the character, so remove the spaces in between C h r in the code.


    @Pat Stanford ran into that a week or so ago. You’re in good company.  😋

     

    Raymond

    • Like 3
  3.  

    Here's a partial map of the Object Variable numbers for the Viewport Lighting Options dialog.

    ObjVars 1014 and 1302-1304 are described above. ObjVar 1269 is clear as mud.

     

    ObjVar 1269 is another object variable that you can read, but cannot set. Or at least I have not found a successful way to set it. If you read it with GetObjectVariableInt(), or GetObjectVariableLong(), you will get the numbers 0-3, or 5 which correspond to the settings shown below. If you try to set the object variable, the values and the menu don't change. I assume the inability to write to variables 1269, 1303, and 1304 is a bug and I'll report it in the morning. If I find out it's WAD, I'll post back so you know, otherwise I'll post back when it gets fixed.

     

    image.png.88a64274218d11c5c544f06707882d71.png

     

    Sorry this didn't turn out better.

    Raymond

     

  4. @Fuge,  REDO...   Now that I have played with it a little, I'm going to revise my previous guess.

     

    With ObjectVariables 1014 and 1015, I can read and write to both Viewport variables:

       VP_Amb := GetObjectVariableBoolean(VPhand, 1014);         { Viewport Ambient }
        VP_Amb_Bright := GetObjectVariableReal(VPhand, 1015);   { Viewport Ambient Brightness }

     

        SetObjectVariableBoolean(VPhand, 1014, True/False);        { Viewport Ambient On/Off }
        SetObjectVariableReal(VPhand, 1015, 0.37);                         { Viewport Ambient Brightness - 0.0-1.0 }

     

     

    However, I can read and write to ObjectVariable 1302.

        AO_On := GetObjectVariableBoolean(VPhand, 1302);          { Ambient Occlusion }
        SetObjectVariableBoolean(VPhand, 1302, True/False);       { Ambient Occlusion On/Off }

     

     

    But, I can only read ObjectVariables 1303, and 1304.

        AOStrength := GetObjectVariableReal(VPhand, 1303);      { Ambient Occlusion Strength - 0-100 }
        AOSize := GetObjectVariableReal(VPhand, 1304);              { Ambient Occlusion Size }

     

     

    If I change the values for "Ambient Occlusion Strength" and "Ambient Occlusion Size" in the Lighting Options dialog box, I can read my manual changes, but if I try to set the values by script, the settings do not take.

     

    More on the "Indirect Lighting" setting in the next post.

     

    HTH,

    Raymond

     

  5. Dave,

       I haven't tried these, but give them a whirl. They look promising.

     

    SetObjectVariableBoolean(LYRhand, 150, True/False);   { Layer Ambient On/Off }

    SetObjectVariableReal(LYRhand, 151, ###);     { Layer Ambient Brightness - 0-100?; you'll have to figure out the range. }

     

    SetObjectVariableBoolean(VPhand, 1302, True/False);   { Ambient Occlusion On/Off }

    SetObjectVariableReal(VPhand, 1303, ###);     { AO Strength - 0.0-1.0? or 0-100?; you'll have to figure out the range. }

    SetObjectVariableReal(VPhand, 1304, ###);     { AO Size - you'll have to figure out the values. }

     

    HTH,

    Raymond

     

    • Like 1
  6. In adding to what @C. Andrew Dunning just posted. Look at the Num2StrF() function. It will format a dimension value to the current document units. So, if you work a problem in inches, but your document units are mm, then Message(Num2StrF(1")); will show '25.4 mm'. This may help your dialogs present document units, not calculation values.

    ValidNumStr() works in the opposite direction, converting formatted string data and returning dimensioned numeric data. 

     

    Bottom line, there are several ways to skin this cat. (Apologies to all cats for that last remark.)

     

    Raymond

    • Like 1
  7. 1 hour ago, SamIWas said:

    Are you in the Atlanta area?  I have a bunch of friends who have lost power after a storm rolled through a few hours ago

     

    No, North Texas. About 25 miles north of Dallas. No storms! Just heat. The good news is that it didn't take until midnight to come back on. Only about 90 minutes down. Next week is forecast to be up to 10°F hotter. If you don't hear from me, you'll know why.

     

    Raymond

  8. 46 minutes ago, Pat Stanford said:

    @MullinRJ

    Did I hear my name? It is something that Reshaper can do. In Front view, with one of the BOTTOM anchor points selected, and the Next Click mode selected, the user can click on the top of any 3D object in the drawing and click the OK button. That will move the selected object to sit atop the clicked-on object.

     

    As far as an existing script goes, I don't know of any, but it wouldn't be too difficult to write. Get the 3D-BBox of both objects, calculate the ∆Z between the bottom of one object and the top of the other, then move the one object up or down by that amount.

     

    Raymond 

    • Like 2
  9. 16 minutes ago, Jesse Cogswell said:

    Any idea how to use custom images for buttons outside of the standard Vectorworks icons?

     

    Hi @Jesse Cogswell,

       Place your images in a folder. Select the folder and ZIP the folder. With the resulting ZIP file, change the .zip extension to .vwr and you now have a VW Resource file.

     

       I believe the commands you referenced can use the path of the .vwr file as your path input. I haven't tried it, so please let me/us know how it turns out.

     

    Thanks,

    Raymond

    • Like 1
  10. Unlike you, I haven't thought about this for more than a minute. You can skip the redraw event with an IF statement, but I think the PIO will erase everything before you skip the redraw. If you don't redraw something, you may have difficulty selecting it afterwards. You can try it, but I don't recommend it. Perhaps someone has a more informed opinion on this. Be careful.

     

    Raymond

  11. I have always placed vsoStateClear() as the last statement in event 3 (kResetEventID). I think you're good if you remove the comment brackets. Also, I think it is a necessary command, but I've never removed it to see what happens.

     

    Raymond

×
×
  • Create New...