What features would you like to see added to a future version of DataCAD?
#78486 by dhs
Sun Aug 02, 2020 1:41 am
My Shadow Analysis macro is now pretty much ready for release, so starting to look seriously at my next project ...

I am proposing to write an updated Sweep macro (although I will probably refer to it as "Extrude" to avoid confusion with an existing Bill D'Amico macro). I considered writing such a macro many years ago (before I was even aware of Bill's macro), and an updated Sweep macro has been suggested to me as a worthwhile project by a couple of people who contribute regularly to this forum.

I don't have Bill's macro , but recall seeing a video demonstrating it in the past (which I assume was the one that Mark Madura made for the Training Videos section of this forum, but the link to the actual video appears now to be broken :?). I don't remember that much of how it worked so don't have a lot of preconceived ideas about how the new macro should behave.

I am seeking feedback from people who have particular wishes or ideas about how a new sweep macro should work.

My current thoughts on the macro's functionality are shown in the bullet points below, but it is very early days so now is your chance to provide feedback that may influence the final design.
  • You would define a "pattern" from a single existing entity which could be one of a variety of types (circle, arc, polygon, polyline). The macro would view that "pattern" in plan view and any z values ignored (this horizontal 2d pattern would then be rotated in 3d to be perpendicular to the path). There is the possibility of also allowing the specification of a circular pattern by the user entering the radius without selecting an existing entity
  • In association with the pattern entity a "reference point" will be selected (this is the point that would follow the defined "path", with the pattern relative to this point).
  • The option to save a pattern and its reference point for future use would be useful (probably saved as a symbol), but perhaps this need not be included in the initial version? (without this option you could still use a symbol, but you would need to explode it to the drawing in order to select the pattern and reference point from it).
  • A "path" can be defined either using an existing polyline or defining a polyline within the macro (not added to drawing) .
  • If the polyline defining the path has a non-zero z-size (i.e. different z-base and z-height) then there would be 3 options: use z-base, use z-height, or start at z-height and end at z-base (for an inclined result ... obviously the polyline itself may already be inclined relative to the z-y plane, but the progression of the path through the inclined polyline would start at one side and finish at the other side).
  • The ability to specify a z-shift so that the actual path shifts z values along the polylines length (regardless of any difference in the polylines z-base & z-height).
  • Is there a need to allow a path to be defined that is in multiple planes??? (e.g. a "chained" group of 3D lines/arcs that could twist and turn in any direction).
  • The result would be formed out of polygon entities. There would be an option to include end-caps or not.
  • Ability to specify number of circle divisions for both pattern and path. I could limit this to the 128 that DataCAD allows and I think that would be sensible although not absolutely necessary (as the macro would construct the result using polygons it would not necessarily be limited to 128 divisions).
  • I am a little uncertain how 'sharp' corners in the path should be handled. My inclination is to 'mitre' them, but there would also be the possibility of having a sharp corner at the inside of the bend and curved on the outside. Comments on this would be welcome.
  • Is there a need to be able to rotate (or twist) the pattern along the length of the path? I think I saw this in a demo of sweep functionality in a different cad program, but I'm not sure how useful it would be in an architectural environment ...
#78633 by melina
Thu Aug 27, 2020 11:58 am
David,

I have and use Bill D'Amico's old Sweep macro. I also have the PDF instructions for it. If you would like a copy of either for reference, let me know. I would argue that if anything needs a rewrite it is D'Amico's Knife macro which became glitchy years ago and leaves me mitering 3d objects "by hand," but we can discuss that another day. ;)

Some thoughts on your thoughts:

You would define a "pattern" from a single existing entity which could be one of a variety of types (circle, arc, polygon, polyline). The macro would view that "pattern" in plan view and any z values ignored (this horizontal 2d pattern would then be rotated in 3d to be perpendicular to the path). There is the possibility of also allowing the specification of a circular pattern by the user entering the radius without selecting an existing entity


The Sweep macro only allows a polygon as a "pattern" entity. So yes, a circle, polyline, etc. would open up more options and create improved end results. (see next)

The option to save a pattern and its reference point for future use would be useful (probably saved as a symbol), but perhaps this need not be included in the initial version? (without this option you could still use a symbol, but you would need to explode it to the drawing in order to select the pattern and reference point from it).


I currently have gutter and moulding profiles saved for this reason in this way. However, using a polygon requires the gutter having to have a "tiny" thickness and results in an extrusion with excess polygons - the inside surface of the gutter, in this case. This is not always desirable as it is more entities to manage and store that may not be needed visually.

A "path" can be defined either using an existing polyline or defining a polyline within the macro (not added to drawing).

If the polyline defining the path has a non-zero z-size (i.e. different z-base and z-height) then there would be 3 options: use z-base, use z-height, or start at z-height and end at z-base (for an inclined result ... obviously the polyline itself may already be inclined relative to the z-y plane, but the progression of the path through the inclined polyline would start at one side and finish at the other side).


The current macro allows lines, circes, arcs, polylines & 3d lines (any plane/rotation), however, ellipses, beziers, B-splines & 3d curves are not permitted. The option to extrude along the z-base or z-height is also given, but not an incline or any z-shifting (intriguing).

The result would be formed out of polygon entities. There would be an option to include end-caps or not.


Capping is included in the Sweep macro and always a good thing. :)

Ability to specify number of circle divisions for both pattern and path. I could limit this to the 128 that DataCAD allows and I think that would be sensible although not absolutely necessary (as the macro would construct the result using polygons it would not necessarily be limited to 128 divisions).


This is a great idea to create tighter curves during a specific event without having to change the overall DataCAD setting. Having more smaller polygons is an asset when taking the model out to photo-realistic modeling applications. However, I don't think I have ever seen the need to go beyond 128 polygons (128 segments on the curve path). Usually, adjustments in the end-user application can aid in cleaning up segmented curves at that point.

I am a little uncertain how 'sharp' corners in the path should be handled. My inclination is to 'mitre' them, but there would also be the possibility of having a sharp corner at the inside of the bend and curved on the outside. Comments on this would be welcome.


Currently, the path defines this but is limited to both the inside and the outside of the extrusion being either both sharp or both rounded. This is one of those things that users will probably find uses for they didn't know they had like wrapping rectagular surfaces, curving curbs around rectangular sidewalks, etc.

Is there a need to be able to rotate (or twist) the pattern along the length of the path? I think I saw this in a demo of sweep functionality in a different cad program, but I'm not sure how useful it would be in an architectural environment ...


The Sweep macro includes this. It is very cool. Spiraling rails and lathe work, making rain chains...it can be used for the extra things that improve the client experience or for creating custom furnishings and fixtures. The current version has some limitations that you might be able to expand on.

I believe that D'Amico's Knife macro is glitchy because of the change that occurred some years ago in the way that points are calculated in space. For whatever reason, the Sweep macro does not seem so affected. However, any clean up or improvement in its coding and functionality to work with the latest & greatest version of Datacad, or software/hardware systems in general, sounds like a great idea! If you need a tester, let me know!
#78636 by dhs
Thu Aug 27, 2020 3:29 pm
Thanks for all your feedback Melina, it is much appreciated.

I have received some other feedback privately, and Mark has been good enough to send me a link to his video demonstrating Bill's sweep functionality so I have a pretty good idea how that works.

My Shadow Analysis macro is now ready for release (just need to create a demo video ... not my favourite job so tends to get put off a bit, but I need to get to it), so I have already started to design and code the proposed Extrude Macro which has clarified some of my thoughts.

The Sweep macro only allows a polygon as a "pattern" entity
My thoughts on the pattern have changed a bit since my original post: I am now proposing that the macro will allow 1 or more entities to be used to create the 'pattern' (for which I am now using the terminology 'profile'). The entity types I will allow include most of the 2D entity types (lines, arcs, circles, ellipses, beziers, b-splines) in addition to polylines and polygons. You will also be able to select a symbol as the profile (but only the aforementioned entity types will be modelled - any other entities in the symbol will be ignored).
Alternatively the macro will allow you to define a circular or regular polygon (with 3 to 20 sides) as the profile by entering appropriate parameters without selecting an existing entity(s).

The option to save a pattern and its reference point for future use
. I am now planning to allow the saving of patterns as a symbol in the initial version of the macro. Additionally the previous profile used in a drawing will be remembered so that you don't have to select it again if you exit and re-enter the macro and wish to use the same profile again.

using a polygon requires the gutter having to have a "tiny" thickness
.
My macro will only model visible sides of a polygon profile, so you will be able to use a polygon as the profile if you hide the appropriate side. Of course you could also use an open polyline. (Interestingly it was the thought of modelling gutters that originally gave me the idea of writing such a macro years ago, although I didn't proceed with it once I found that Bill had already provided the functionality).

In terms of modelling thickness, I am also now proposing to include a 'Shell' setting in my macro which will optionally produce a thickness to the extrusion when some entity types are used as the profile.

The current macro allows lines, circes, arcs, polylines & 3d lines (any plane/rotation), however, ellipses, beziers, B-splines & 3d curves are not permitted. The option to extrude along the z-base or z-height is also given, but not an incline or any z-shifting (intriguing).
.
I am now proposing to allow entity types other than polylines to be used to define the path. Despite my earlier thoughts I probably won't include the option to define a path within the initial version of the macro (may be added in a later version, but initially you will need to select an existing entity (or entities) to define the path).
I also plan to allow the specification of a z-profile (will probably need a bit of explaining in the instruction manual, but would allow you to select a horizontal polyline where the y values along the length of the polyline would be used as the z values of the extrusion along its defined path).
Additionaly, I plan to include the possibility of extruding along vertical edges (e.g. if you select a slab entity as the path you could extrude along the thickness edges as well as (or instead of) along the top and bottom polygons).

For a future version, I am also wondering whether the ability to follow a 'ground surface' might be useful (e.g model a handrail that is a specified height above a series of polygons such as a drop mesh, ruled or TIN surface).

The Sweep macro includes this. It is very cool. (regarding 'twist')

Yes, I am now intending to include a twist option in my macro.

I don't think I have ever seen the need to go beyond 128 polygons

My thoughts are also that 128 should be enough. However there won't be any additional logic required to model a larger number so I will probably allow it but display a warning if a user enters a larger number (in case the did so accidentally). The divisions specified in the macro will only apply to circular or eliptical curves (for beziers, b-splines I will use DataCAD's settings as the macro won't try to calcualted these for itself).

I believe that D'Amico's Knife macro is glitchy

I am not familiar with Bill's Knife functionality, but I have a future macro in mind that I expect will provide the ability to cut 3d entities at a defined plane as well as trimming entities to each other (although I may be years before I get to this, as I have more than a couple of future macros in mind).

If you need a tester, let me know!

Thanks Melina. At the moment I am working on the user interface and may contact you once that is reasonably complete if you are willing to have a look at it and provide feedback at that stage (before any of the hard work of actually creating the model is done).

Regards,
David H.
#78637 by joshhuggins
Thu Aug 27, 2020 5:00 pm
All of your suggested enhancements sound great David!
#78641 by dhs
Thu Aug 27, 2020 6:06 pm
The other enhancement that has been suggested since my original post (and which I am intending to include in the initial version) is the ability to taper the extrusion. Bill's macro does allow this, but I am proposing additional options:

You will be able to specify an enlargement factor for both the beginning and end of the extrusion and the extrusion will be tapered accordingly.
.... or, if you wish for a non-linear taper you can specify a polyline as an 'enlargement profile' (e.g. you could model a fluted column with a slight bulge in the middle). The enlargement profile can either be stretched/compressed to the length of the path or truncated/repeated if it is longer or less than the path length.
#78666 by John Daglish
Mon Aug 31, 2020 9:15 am
(e.g. you could model a fluted column with a slight bulge in the middle


Some details for the entasis setting out attached (column normally bottom 1/3 straight then curving 2/3) but some do bulge in the middle! The amount of reduction varies. In the doric example attached it is reduced to 5/6 at the neck of the column.
Attachments
(919.2 KiB) Downloaded 891 times
Calculation of Entasis from American Architect 1921 part 2.jpg
Calculation of Entasis from American Architect 1921 part 1.jpg
#78667 by melina
Mon Aug 31, 2020 12:05 pm
Being able to vary the bulge/taper is an upgrade. With the classical columns and similar, as surface of revolution works fine, but only if the column is smooth. Being able to add flutes and ridges opens up new options whether working in historic preservation or creating new organic shapes for light fixtures. Very exciting!
#80288 by dhs
Thu Oct 07, 2021 9:58 pm
I am pleased to announce that a new macro is now available from my web site.

The Extrude Macro allows you to extrude a profile along a path, and both the profile and the path can be defined in a number of different ways. Please take a few minutes to watch a video demonstrating this new macro.

You can download the new macro from the Extrude Macro page on my web site.

I would like to thank both Melina Boukis and Mark Madura for testing and providing feedback during the development of the macro, and you will find some of the comments they made regarding the macro on the Extrude Macro page on my web site.

Not all the features I originally envisaged are included with this first version of the macro, but I believe it provides a reasonably comprehensive starting set of tools that I do intend to develop further with additional functionality in future.
#80290 by Dave
Fri Oct 08, 2021 2:38 am
Haven't tied it yet, watched the video, looks very good
Thanks

DaveR
#80340 by dhs
Tue Oct 19, 2021 1:16 pm
I have released a new version of this macro with some bug fixes and some minor enhancements to functionality.

2 new options have been added to the Z options for path entities:
  • Mid Z will create the extrusion at the mid-point between z-base and z-height of the path entity
  • Base PLUS will create the extrusion at a specified increment above the z-base of the path entity.

Rgds,
David H
#80345 by David Porter
Wed Oct 20, 2021 11:41 am
I concur with Josh's assessment of the existing Sweep macro. My biggest issue with it is figuring out the correct path direction to then draw the polyline so that the profile chosen gets extruded in the correct direction. I would like to see the use of a simple 2D drawing profile or polyline that defines the shape and then a simple polyline drawn in one direction that can define how the profile will get extruded.

The Sweep macro does the trick but I think if the Extrude macro can be less complicated for the creating of the extruded profile and then the pathway to make it all happen, that would be a big improvement.
#80346 by dhs
Wed Oct 20, 2021 4:01 pm
I concur with Josh's assessment of the existing Sweep macro

Hi David, not sure where Josh's assessment is that you're referring to ... are you able to reference it more specifically?

My biggest issue with it is figuring out the correct path direction

I agree that it is not always obvious which direction a path entity goes, and there is certainly room for improvement here. If you use the Trace option in Extrude then it should be reasonably obvious, but it is less obvious when using an existing entity(s) to define the path. Perhaps an 'Is this correct?' type of dialog immediately after the creation of the extrusion with the option to redo it with the profile flipped the other way around wold be helpful?

Extrude macro can be less complicated for the creating of the extruded profile and then the pathway to make it all happen

Extrude offers many options for creating the profile/pathway. I think it is pretty simple but if you have specific suggestions I wold obviously be pleased to hear them.

Regards,
David H
#80348 by melina
Thu Oct 21, 2021 9:07 am
David Porter wrote:My biggest issue with it is figuring out the correct path direction to then draw the polyline so that the profile chosen gets extruded in the correct direction.


This was a problem with the Sweep Macro as well. With the Extrude Macro, I found that if the profile did not extrude in the correct place (i.e. inside of the rectangle, instead of outside), simply mirroring the profile in the Section Profile Dialog fixes the problem.

David Porter wrote:I would like to see the use of a simple 2D drawing profile or polyline that defines the shape and then a simple polyline drawn in one direction that can define how the profile will get extruded.


This can be done with the Extrude Macro. Below are mouldings from the CheapTricks templates that consist of lines. There are also text labels in the symbols that the macro safely ignores. The path method here was Trace, but a polyline or chain of lines drawn around the walls would have both worked as well. Is this the sort of thing you are looking to do?
Attachments
Room2.png
#80912 by Mark Bell
Mon May 16, 2022 3:10 am
Got into using DHS's Extrude Macro in more detail today and have to compliment David for a great macro. After initially being put off by the complexity of the macro settings and limited time to get the work done I quickly watched the first half of the Youtube video that was produced with the macro ( https://www.youtube.com/watch?v=yKtl7H7rCRU ) , jumped back over to DataCAD and managed to output exactly what was needed straight away - and it was so simple to use. Thumbs up to you Dave!

Who is online

Users browsing this forum: No registered users and 20 guests

About DataCAD Forum

The DataCAD Forum is a FREE online community we provide to enhance your experience with DataCAD.

We hope you'll visit often to get answers, share ideas, and interact with other DataCAD users around the world.

DataCAD

Software for Architects Since 1984