Looking for alternatives to dynamic blocks

Since the current BricsCAD v17 cannot handle dynamic blocks with tables, I am hunting to see if there are any alternatives to dynamic blocks.

I know that constraints can do some of the dynamic blocks functionality.  But, in my case, I specifically want to give the user (mostly myself) the ability to choose a model # of an item, and have the dimensions of it change to match that particular model.  So, a table driven part is feature that I need.

Is there any way to do this in base BricsCAD? How about a 3rd party app, if I am willing to give up the goal of making the block able to be changed when I am opening it in AutoCAD or other DWG editors?

-Joe

Comments

  •  I have looked over the application catalog, and only saw one that seemed to be a candidate, TangenTools. But, when I attempt to download it, I get a 404 error.

    -Joe
  • In the case of a product range with fixed models wouldn't a series of static blocks (perhaps with a clever naming scheme) be enough?
  •  That is what I do now.  But, it is surprisingly time consuming for me to produce all these variations in size. I have a fairly large library of them already, but the manufacturer has changed their part# scheme, and so they will need to all be edited. 

    Since I need to do so much re-work anyway, that is what prompted me to investigate other solutions. A dynamic block solves the problem nicely, but BricsCAD does not have the Dynamic block table functionality to use them.

    I have sent a message to TangenTools to see if their product is still available.

    -Joe
  • One potential solution would be the use of a Lisp application to control the properties of dynamic blocks. The Lisp code would then load or contain a lookup table with values for each model. Attached is a small proof-of-concept example.

    TableForDynBlock.zip

  • As a master of LISP, I am sure than most LISP is something you can create with little effort. However, for myself, it represents a large learning curve to do. To me, an even moderately complex LISP program quickly becomes unmanageable because of the, "Lost In Stupid Parenthesis" thing. If our company were not in a situation where I have more free time, than the company has income, I think you would be the 1st guy on my list to contact for some custom programming.  I am considering doing it myself in Visual Basic, even though I have not used it in years.  At least with VB, I can easily add dialog boxes, etc.

    Concerning your LISP, I wonder if the table could somehow be embedded in the block itself. Perhaps it is an attribute, that is set to be invisible. Then, its contents is a comma delimited list of the data for that block. The headers of that data being the names of dimension constraints, and attributes, flip state, etc. Then, the LISP is a generic tool that can be use with any block that has the parameters stored this way.  Of course, once BricsCAD adds support for tables, the LISP is obsolete.

    I am guessing that the authoring of dynamic blocks in BricsCAD is perhaps a decade away. So, if your routine could work with standard blocks, then it would serve the same functionality.  I realize you can't just edit the 2D dimensional constraints of a standard block, because that would change all the occurrences of that block. So, your routine would have to perhaps copy the block, insert it into a new drawing, then edit that version, rename that version, and then copy it back into the original drawing.

    -Joe
  • Joe could you post a DWG sampling of the typical blocks you use.
    Or did you find a solution?

  • No I have not found a solution. My work-around attempt was to create a VBA program inside Excel that has a script that will create a block in BricsCAD. But, on my computer, something is preventing the VBA program from talking successfully and reliably to BricsCAD.

    Many years ago, before dynamic blocks or 2D constraints existed in AutoCAD, I recall reading about 3rd party programs that gave you similar functionality. But, I have not been able to find anything like that now. The closest I came, was a program that would use their built-in models and insert things like bolts. But, it did not permit you to use your own model.

    Perhaps another approach is to create a VBA inside of BricsCAD that would open a file that had a drawing with 2D constraints. Then, it is able to recognize all the dimensional constraints, and permit the user to change their value from a VBA form. However, 2D constraints do not permit you to change the number of items in an array. In my case, the number of fans vary depending on how long the evaporator is.

    Attached is one of the evaporator blocks I was attempting to create with my Excel VBA.

  • I'm into LISP but it would be easy to create that simple block using a CSV file for the data.
    Maybe a DCL pick list for the selection of the make & model.
    A REPLACE function would have the user (you) select the block to replace, popup the DCl to select the replacement.

    The Dynamic Block would be somewhat complex.

    What does the Data look like for that CSA-305 part?

  • I actually started another thread,in the Programming part of the forum. I am not really familiar with LISP, so that is why I wanted to do it in VBA. But, my Windows environment, for some reason, has now been preventing my VBA inside Excel from talking to BricsCAD. So, now I will rewrite my VBA from within BricsCAD.

    -Joe

  • Looks like you are on your way to a solution so I'll leave it here.

This discussion has been closed.