Jump to content

Sam Jones

Member
  • Posts

    1,191
  • Joined

  • Last visited

Posts posted by Sam Jones

  1. 10 hours ago, Company Call BV said:

    I do understand the issue regarding the correct data, but in the case of Spotlight you always add the Channel number / Unit number to your fixture. That would be the unique identifier for Vectorworks to match to. 

    Not really.  10 years ago I put 4 lights on separate circuits, 3 of which had the same unit number but different positions, on the same channel to make a path.  Happens rarely, but does happen.  Position and Unit Number would be unique, and would have the additional advantage of telling you where the fixture is.  That doesn't matter with this problem, but the use of channel numbers to identify fixtures drives me crazy.  Where the #$@&! is channel 203?  It's not coming on, and the programmer wants me to troubleshoot it.

  2. 1 minute ago, JBenghiat said:

    This will place the symbol symbolName at the center of the PIO, facing up.

    Actually, it will place the symbol at the insertion point of the PIO.  The insertion point is where you click when you place the PIO.  If  you want to offset the symbol from where you click, put the amount of offset in the Symbol() call as measured from the click.

    • Like 1
  3. If I understand you correctly and that is not clear to me, you would need a script to copy values from the data tag into into symbols that the truss tape command will recognize, and then select the symbols along with the other objects you want on the truss tape.  For now this is a one off, and it would be easier to just make your own symbol with a record attached, place them, and copy the universe values by hand into a field of that record.  You would then need to list that record and field in the Truss Tape Assign worksheet.

    Or, just just write something on the Truss Tape design layer.

    The real solution is for me to give you the option of placing Data Tag field values on the truss tape, and then include the Data Tag record in the Truss Tape Assign worksheet.  That is currently not allowed because it assumed that objects on the truss tape are real objects to be hung on the truss, so Data Tags and Callouts are not recognized even if selected.

    If you want to Zoom with me, to try and figure out a possible workaround, no guarantees, let me know.  sjones@autoplotvw.com

  4. I don't seem to be able to create a symbol folder in the resource manager and then import symbols and place them in that created folder all in the same command.  The command below creates the folder and then imports the symbols but then places them outside of the created folder.  Is there a way to do this?

    As always TIA.

     

    {====================================================================}

     

     PROCEDURE LoadTentSymbols;
     {$DEBUG}
     
     CONST

         kRETentSymbolFolder            = 'RE Tent Structure Symbols'; {Resource Manager Folder}
         
     VAR
         RESymbolFilePath            :STRING;
        TentSymListIDX                :LONGINT;
        TentSymListCt                :LONGINT;
        TentSymName                    :STRING;
        TentSymHdl                    :HANDLE;
        TentSymFolder                :HANDLE;  
        
        Index                        :LONGINT;
        
    {=================================================================}

         FUNCTION ImportCallBack(VAR resName:DYNARRAY OF CHAR) : INTEGER;
         BEGIN
             ImportCallBack := 0;
         END;
        
    {=================================================================}

    BEGIN
         RESymbolFilePath := 'Raging Empire';
        TentSymListIDX := BuildResourceList(16, -13, RESymbolFilePath, TentSymListCt);
        TentSymListCt := ResourceListSize(TentSymListIDX);
        
         TentSymFolder := GetObject(kRETentSymbolFolder);
         
         IF (TentSymFolder = NIL) THEN
             BEGIN
                NameObject(kRETentSymbolFolder);
                BeginFolderN(16);
                EndFolder;
                TentSymFolder := LNewObj;
                ResetObject(TentSymFolder);
             END;
         
        FOR Index := 1 TO TentSymListCt DO
            BEGIN
                TentSymName := GetActualNameFromResourceList(TentSymListIDX,index);
                TentSymHdl := ImportResToCurFileN(TentSymListIDX, index, ImportCallBack);
                InsertSymbolInFolder(TentSymFolder,TentSymHdl);            
            END; {FOR Index := 1 TO TentSymListCt}
    END;
    RUN(LoadTentSymbols);
     

  5. 21 hours ago, FMA said:

    LNewObj works as a handle, Thank You!

    An important thing to know about "LNewObj" is that it does not work as a handle; it is a function that returns (gets) a handle to the last created object.  It's value will change as soon as anything is created by the script.  If you are going to need a handle to a symbol for a variety of reasons, it is best to assign it to a variable and use the variable in all the different places you need it.

     

    VAR

         SymbolName : STRING;

         SymbolHandle : HANDLE;

         X, Y, Rot : REAL;

         X1, Y1, X2, Y2 : REAL;

     

    BEGIN

         Symbol(SymbolName, X, Y, Rot);

         SymbolHandle := LNewObj;

         GetBBox(SymbolHandle, X1, Y1, X2, Y2);

         Rect(X1, Y1, X2, Y2);

    END;

     

    • Like 1
  6. @FMA  You didn't get it wrong.  I did.  I use the following to scale a symbol instance

    ObjArray

    Symbol(SymHdl, Sx, Sy, SAngle);

    SetObjectVariableInt(LNewObj, 101, 2);                              { ScaleMode: 1=None, 2=Symmetric, 3=Asymmetric }

    SetObjectVariableReal(LNewObj, 102, ScaleFactor);

     

    • Like 1
  7. 27 minutes ago, Charlie Winter said:

    Given this, is it possible to create a script that sorts the object order based on the Lighting Device Channel?

    I think this is possible, but I'm going to wait for others who have more chops than I to weigh in.  My thoughts on it are not trivial and would probably be slow and it would take some work just to test.  At a minimum Josh and Kevin will have a better  idea.

    However, I have a question.  Why do you care?  Does not the MA3 order the channels no matter what order they are read in?

     

    • Like 1
  8. What you provided was a "Plant" plug-in object (PIO), not a symbol.  I do not have Landmark.  I have the Design Suite.  The instance you have in the drawing has all its Spread and Height parameters set by class.  So we're not placing a symbol, but a PIO.  Different kettle of fish; not rocket science, but more involved.  It would seem one would need to place an instance of a Plant PIO with the VS function "CreateCustomObject", get its bounding box and the bounding box of the circle, and determine the scale ratio; then scale the "Spread" and "Height" parameters by the scale ratio.  I don't have time to play with this, but maybe @Pat Stanford would like a diversion.  Seems like it would be a useful script for Landscape users.

     

  9. 56 minutes ago, AStein said:

    you've pitched your software for enough of my problems that I'm really curious.

    If you ever want a Zoom tour, conversation let me know.  As for my sales acumen.  The approach is a lot like a drug dealer.  "Try a little".

    Additionally, there are more tools in the collection than any of my users actually use, so this is also a way to point some things out to people who already have the tools.

     

     

     

    • Like 1
×
×
  • Create New...