Jump to content

Hugues

Vectorworks, Inc Employee
  • Posts

    916
  • Joined

  • Last visited

Posts posted by Hugues

  1. Hi Andre,

    It seems like there is a data corruption in row 14. I would be interested in knowing how this happened. Was the file originally created in a previous version ? Did this happened during file translation.

    Any info would be appreciated.

    Thanks,

    Hugues

    NNA

  2. Very cool. A much more elegant solution than using the old square root of a square trick.

    So the syntax of the IF command is

    =IF((condition)[first comma = 'then']result1[second comma = 'else']result2) ?

    Do you ever need ( ) around the result1 or result2 if they are not simple statements?

    ie. =IF((B1=0),((3.14*A1)/2),(SQRT((A1/B1)*(A1/B1))*-1))

    I'm trying to understand the difference between

    =IF((B1=0), 0, A1/B1)

    and

    =IF(B1=0, 0, A1/B1)

    Michael

    Hi Michael,

    You don't need parenthesis around result1 or result2.

    You only need parenthesis for Boolean statements within an IF statement.

    Also note that you need to place quotation marks around text within an if statement.

    Thanks

    Hugues

    NNA

  3. gmm18,

    yes you can.

    Custom-made records are not different in nature from records derived from objects (plug-in object records)

    The #VALUE! error in the worksheet signals that one or more parameter in your operation has an invalid value.

    Check again the format of the record field (NOT the cell format in the worksheet) and make sure it is not a text.

    If it is in fact a number or integer, then the record might be corrupt. Send me the file at htsafak@nemetschek.net and I would investigate the issue.

    Thanks.

    Hugues

    NNA

  4. Yes, the format of a database cell is always linked to the database header cell. The height of a database row is linked to the database header row.

    Prior to VW2008, database cells were only selectable as a block. Now with the introduction of single selectable database cells and 2way worksheets, this linkage doesn't make sense anymore.

    Hugues

    NNA

  5. I just want to point out that the Report generator has an option that allow you to append a database to an existing worksheet.

    Clicks on the Options button on the bottom left corner of the Create Report dialog. Now in the options dialog you can change the database placement option to 'Append to existing worksheet' and select the worksheet you'd like to append to.

    Hugues

    NNA

  6. Database cells are different from spreadsheet cells.

    You can't set the height or format for individual database rows. They always have the same height and their format is always linked to that of the database row.

    If you set the height of a database row, all rows in the database will get the same height.

    You may see a database row adjusting to fit the content of a wrapped cell in the worksheet editor. This is confusing.

    This problem will be addressed in a future release.

    Thanks

    Hugues

    NNA

  7. I suspect that your row is locked to a specific value.

    You basically lock a row height by setting the value manually. To unlock it, select the row and go to the row height menu and select "Auto Fit Row Height".

    If that doesn't work, then there is a data corruption somewhere.

    Can you reproduce this problem consistently ?

    Thanks

    Hugues

    NNA

  8. Mike,

    the object name in the Object Info Palette is not part of the Record Format.

    If the names need to be saved in a record, you can edit the record formats and add a field for that.

    If all you need is having them listed in a worksheet, you can add a worksheet column and type "=N" (without the quotes) in the database header.

    Hope it helps.

    Hugues

    NNA

  9. Are you familiar with VectorScript ?

    You can use the CreateWSImage() to place a worksheet in the drawing.

    This is a script for you.

    PROCEDURE PlaceWSInDrawing;

    VAR

    listID: LONGINT; { List ID for worksheet resources }

    listCount,index: LONGINT;

    hWS: HANDLE;

    hImage: HANDLE;

    x,y: REAL; { worksheet image position }

    BEGIN {procedure begin}

    listID := BuildResourceList(18, 0, '', listCount);

    IF listCount > 0 THEN BEGIN

    x := 0;

    y := 0;

    FOR index := 1 TO listCount DO BEGIN

    hWS := GetResourceFromList(listID, index);

    IF ((hWS<>NIL) & (GetType(hWS) = 18)) THEN BEGIN

    hImage := CreateWSImage(hWS, x,y);

    ResetObject(hImage);

    x := x+1;

    y := y-1;

    END;

    END;

    END;

    END;

    RUN(PlaceWSInDrawing);

    Hugues

    NNA

  10. boxjoint, pat and all,

    There is another solution for accessing PIO names that doesn't involve using the VS Plug-in editor or scripting.

    You can do this directly from the worksheet using the Paste Criteria command.

    Proceed as follows:

    - Enter the equal sign in the formula bar

    - Click on the "Paste Criteria..." command in the worksheet menu

    - The Paste Attributes dialogs opens , then click on the 'Custom' button.

    - Now in the Criteria dialog, select the Field Value criterion, pick your PIO field and make sure you set the criteria operator to 'NONE' (third pulldown menu).

    - Click OK and you are done.

    We are well aware that accessing PIO names from the worksheet isn't straightforward and intuitive. This area is on the radar and we are working on better solutions.

    Hugues

    NNA

  11. Hi David,

    RecalculateWS operates on the worksheet object itself not the worksheet image on the drawing. You need to get the worksheet object handle from its image. You do this by calling GetWSFromImage

    Your script should work if you modify your procedure like this:

    PROCEDURE RecalcWS(h:HANDLE);

    VAR

    h2 : HANDLE;

    BEGIN

    wsH := GetWSFromImage(h);

    RecalculateWS(h2);

    SetSelect(h);

    END;

    Hugues

    NNA

×
×
  • Create New...