Jump to content

Paolo

Member
  • Posts

    182
  • Joined

  • Last visited

Posts posted by Paolo

  1. I am proud to announce that some of my plugins and scripts  (previously hosted on Vectordepot) are made available for download here:

     

     https://fitplot.it/vwplugins/

     

    These are a few items developed by me (Paolo Marcuccetti) in the past years, updated and working with VW2018.
    I give these softwares free for download and usage, not for distribution.

     

    If you find these softwares useful in your work, please consider a little paypal donation. You'll find instructions on site.
    Contributions will be used to keep the site updated, to bring in new contents and to give any technical assistance.
     

    Paolo Marcuccetti

    • Like 3
  2. The OSx printing system it's hard to override, Apple takes care of its own user interfaces.

    For a quick print, Benson's way is the more straight.

    If your work is organized in (many) sheet layers and not just one design layer, you may find useful to print to PDF, then use a simple app like this:

    http://digilander.libero.it/kiaradot/fitplot

    here you can easily compose all your sheets in the plotter layout (packing tool).

    You can print also a portion of the PDF (if you have a small printer) or get a "mosaic" of the whole drawing (with overlaps).

    It's also easy to resize (rescale) the PDF for different scale needs.

  3. I have tried, but even in VW2011 this still misses.

    In Viewport section, advanced properties, tab attributes, my best options to achieve what I want are:

    separated transversal sections radio button on

    then you have to choose between

    1. using object class attributes

    2. choose from the classes in the popup (Section Style is proposed)

    The 1 uses the same class that in plan view (not right!)

    the 2 uses one class for all (not right too!)

    If there is a way, please post it...

  4. It would be a good thing to have a "section fill" class attribute.

    Currently, in section view, we have two fill choices:

    1. Using section class (one class for different elements)

    2. Using element class (each element has its inherited fill class)

    Fills/hatches in section may differ from fills / hatches in plan views, usually you should have different diagonal hatches, exclusive for each class/material.

    Since options 1 and 2 does not this completely, I have to make this final step by hand, so it would be appreciated to see this feature implemented in a future release...

  5. I need to get the first intersection point (if any) of a polyline with a given line (extended if needed) via VectorScript.

    I have tried to use the Split2DObjectByLine procedure, but it seems not reliable.

    Here's the script. To test it, draw a polyline, then a line, run the script and select first the poly then the line. A point should be placed at their intersection. Not always it works. Sometimes it even crashes VectorWorks :

    procedure lineToPoly;

    VAR

    polyHandle: handle;

    lineHandle: handle;

    punto :Point;

    function intersectionLinePoly(lineH, polyH: Handle): Point;

    VAR

    tmpPolyH, tmpLineH : handle;

    begPt : point;

    endPt: point;

    resultHandle, temp_h: handle;

    BEGIN

    {faccio copia della linea}

    tmpPolyH := CreateDuplicateObject(polyH, NIL);

    tmpLineH := CreateDuplicateObject(lineH, NIL);

    GetSegPt1(tmpLineH, begPt.x, begPt.y);

    HScale2D(tmpLineH, begPt.x, begPt.y, 10,10,false);

    GetSegPt2(tmpLineH, endPt.x, endPt.y);

    Split2DObjectByLine(tmpPolyH, begPt.x, begPt.y, endPt.x, endPt.y, resultHandle);

    IF resultHandle <> NIL THEN BEGIN

    GetPolyPt(resultHandle, getVertNum(resultHandle), intersectionLinePoly.x, intersectionLinePoly.y);

    END;

    delObject(tmpLineH);

    delObject(tmpPolyH);

    END;

    begin

    GetPt(punto.x, punto.y);

    polyHandle:= PickObject(punto.x, punto.y);

    GetPt(punto.x, punto.y);

    lineHandle:= PickObject(punto.x, punto.y);

    punto := intersectionLinePoly(lineHandle, polyHandle);

    if not ((punto.x = 0) and (punto.y = 0)) then locus(punto.x, punto.y);

    end;

    run(lineToPoly);

    Is there a more reliable way to get this?

    Thank you in advance for your help.

  6. I have the same Designjet HP 500PS and the same problem that I solved.

    To get exact A0, A1, A2, A3 I have create my custom equivalent formats including the margins that are (for the HP 500PS) 1.7 cm (top and bottom) and 0.5 cm (left and right).

    For example A3 Horizontal trimmed is 42x29.7 cm, including margins is 43x33.1 cm.

    Doing this way it works.

    Another way is to print to PDF and using a simple layout program like this (Mac only):

    http://digilander.libero.it/kiaradot/fitplot/Contents/Resources/English.lproj/fitPlot%20help/index.htm

    The advantage is that you may print more drawing at once optimizing paper waste and having the margins under control.

  7. Your suggestion has been the key! Thank you!

    Here's a procedure to increase all the extruded object in a selection of a user given value:

    [font:Courier New]procedure increaseExtr;

    {the goal is to increase extruded objects in the selection of a user requested value}

    var

    oggetto:HANDLE;

    increaseValue : REAL;

    FUNCTION increase(h:HANDLE):BOOLEAN;

    var

    height,width,depth:REAL;

    xRot, yRot, zRot:REAL;

    p0X, p0Y, p0Z: REAL;

    p1X, p1Y, p1Z: REAL;

    result, isMirroredXY: BOOLEAN;

    begin

    {check if the obj is an extrusion}

    if (GetType(h) = 24) then

    BEGIN

    result := Get3DOrientation(h, xRot, yRot, zRot, isMirroredXY);

    Get3DCntr(h, p0X, p0Y, p0Z);

    SetRot3D(h, 0,0,0 , 0,0,0);

    {here depth = extrusion value}

    Get3DInfo(h, height,width,depth);

    {I increase the depth}

    Set3DInfo(h, height,width,depth+increaseValue);

    Set3DRot(h, xRot, yRot, zRot , 0,0,0);

    Get3DCntr(h, p1X, p1Y, p1Z);

    {move of the misplacement p0-p1}

    Move3DObj(h, p0X-p1X, p0Y-p1Y, p0Z-p1Z);

    Get3DCntr(h, p1X, p1Y, p1Z);

    END;

    increase := FALSE;

    end;

    begin

    {ask the value to increase}

    increaseValue := RealDialog('Increase extrusions in the selection of this value','10');

    {apply to the selected set of objects}

    ForEachObjectInList(increase, 2, 0, oggetto);

    end;

    run(increaseExtr);[/font]

  8. Go to VectorDepot and browse for a program called Logex.

    logex_thumbnail.png

    Logex reads and analyze the VectorWorks log file extracting from it all saved drawings on which you have spent more than 1 minute.

    A typical output could be this:

    fileX 23/05/2006 20:39 00:33
    fileY 23/05/2006 20:42 00:11
    Untitled 1 23/05/2006 20:42 00:01
    fileZ 23/05/2006 20:42 00:25
    

    Once saved, the output is a text file with each line representing an event (drawing) record.

    The record fields are:

    • the name of file (drawing)
    • the when (date of event)
    • the time spent for that file

    Fields are TAB separated, so the file is ready to be used in a database or in a worksheet for further statistics.

    Logex analyze the integrity of the VectorWorks log and check if there are errors (due to VectorWorks crashes or possible deactivations / activations of report from the VectorWorks general preferences).

    Errors are classified by a color syntax that may be helping for the correction work.

    Presently logex is available only on Mac OSX? 10.3.9 or more, any version of VectorWorks? (version 12 with some limitations due to a known bug in the "saved as?" lines produced in the report). There is no way for Windows users.

    Logex is available in Italian and English localization.

  9. I have worked on the problem and went out with a plugin that is able to import paths from files saved as .ai or .art from Illustrator?, FreeHand? and other vectorial programs.

    The importer is avaliable here: VectorDepot

    There is a free evaluation copy too (limited in the number of entities it can import).

    Waiting for a true usable quadratic bezier tool in VectorWorks, this can be a workaround for all of those users that can draw their artworks with other programs. smirk.gif

    • Like 1
  10. I'have tried this little experiment :

    Made a Bezier shape in FreeHand (5 points, 2 nibs and 1 bezier point with 2 handle points).

    Exported as .ai (even .ps or .eps should work).

    Opened in Textwrangler (or similar text editor).

    Found the clearly visible sequence of 5 points.

    Opened Vectorworks and created a similar shape (polyline tool) with this sequence:

    angle point, bezier point, angle point, bezier point, angle point.

    Modified each point coordinate according with values of the .ai file.

    The obtained curve should now be the same as in FreeHand, but a superimposition of the two shapes (proportionally rescaled) reveals a mild difference.

    Conclusion: bezier's algorithm used by the two programs are different!

  11. Or, at least, I wish an Illustrator / Freehand importing tool.

    I currently use Freehand beziers for logos and free forms, then I export in Illustrator format. I import it in Cinema4D (a very old version I use just for this) and export from there as dxf.

    When I open the dxf in Vectorworks, alas, the bezier lines are all converted into polygons (segmented in thousands pieces).

    I suspect there is no satisfactory algorithm to convert true beziers (such used in Illustrator, Freehand, Photoshop) into the native bicubic spline engine of Vectorworks.

  12. I agree with you, Robert, the name "Openings" for the plugin's set may be confusing, but niche is an option available in a general, very customizable, opening in the wall.

    here's th info panel of the plugin

    info.jpg

    and same image respectively in plan view, dashed line and openGL renderings.

    planView_niche.JPG

    dash_lines_niche.JPG

    openGL_niche.JPG

    Hope now it's clear.

×
×
  • Create New...