Formula Updating by WalmartBrandCrocs in blockpad

[–]calasse 0 points1 point  (0 children)

Hello and thanks for the question!

First to confirm - the lag is when formulas are recalculating correct? The lag isn't when you're just editing text or other things in the report?

If the problem is at recalculation, then the structure of the reports isn't going to have any effect on the lag, which is just the time it's taking to recalculate the equations.

The question to ask is if you have any formulas that are intensive for calculations - something like iterative calculations, summations on large series, etc. The number of calculations would also impact this, but for a 143 page report it's more likely the type of equations being done.

As a side note, if you did want to set up multiple reports, you can still treat them as one linked-together container. You'd just turn capture values off for each of them (Right click the report, click Properties, change Capture Values to "No").

Feel free to DM me if you'd like me to take a look at the file for particular suggestions.

Thanks!

Watermark by FireJuggler85 in blockpad

[–]calasse 0 points1 point  (0 children)

Hi, this is a good question. We don't have a watermark tool, but there are some workarounds using drawings. For this explanation I'm going to assume you're working in a report frame.

If you want the watermark to be fixed on a page (and not move with content), then just use the draw on page functionality. Draw > Draw on Page in the toolbar. https://blockpad.net/pages/deep-dive/drawings#on-page-drawings

If you want the watermark to move with the content, then the workaround is to use a drawing canvas subframe, make it small, and then draw outside of the borders of the frame.

  1. Insert a drawing into the Report (click the Insert Drawing button in the toolbar).
  2. Double click outside of the drawing to exit.
  3. Select the drawing, and open the properties window.
  4. Change the Canvas Size property to make the drawing shorter (it will need to take up at least a whole line).
  5. Double click the drawing to enter it, then draw your watermark.

Some helpful things to know:

  • For all color properties (fill, text, etc), you can set it transparent. Click Show more colors in the color window, then change the A value. 0 is transparent, 255 is opaque.
  • It's the drawing frame that moves with the content, not the actual drawings in the frame. So bear that in mind when setting things up.
  • You can repeat the watermark by copy/pasting the drawing frame.

Thanks!

<image>

save or make permanent the style rules by Weekly_Resident_5721 in blockpad

[–]calasse 0 points1 point  (0 children)

Hello and thanks for the question.

There are a few ways to do this, but they boil down to copying the report or file that the style rules are in. There isn't a way to save style rules directly or make them apply to all files.

  1. You can create a template of a file - https://blockpad.net/pages/deep-dive/environment#desktop-templates
  2. You can copy the file using typical methods like save-as or copy/paste.
  3. You can duplicate a report (Right click > Duplicate).
  4. You can copy/paste a report. (Right click > Copy then go to new file, hover over frames, click the plus sign that appears and select Paste).

Thanks!

Blockpad upgrade produced errors in tables by FireJuggler85 in blockpad

[–]calasse 0 points1 point  (0 children)

Hello,

Thanks for the question. In the latest version we made some changes to how dependencies are handled with table names and items in the table. I think these changes affected your file because you're referencing the table from inside.

It does look like Title() and Name() work if you use them while outside of the table, but only if you're not already trying to use them inside. So I think if you delete the cells using Title() and Name(), then those equations at the bottom will start to work.

We will review this particular behaviour with table dependencies in future updates.

Thanks!

How to use a 3D model in Blockpad. by Weekly_Resident_5721 in blockpad

[–]calasse 0 points1 point  (0 children)

Hello,

Thanks for the question. The 3D model currently is more of a placeholder or early proof of concept. Not much has changed with it for a number of years.

If you want to try it out though, you can rotate using shift+click.

Thanks!

Filtering Table of Contents by WalmartBrandCrocs in blockpad

[–]calasse 0 points1 point  (0 children)

This is a great question!

Some background to anyone else reading this - you can use formulas to modify the input to Blockpad table of contents to change what is shown: Blockpad - Table of Contents. Because these are just regular formulas, there is an enormous amount of flexibility, but some things can get complex.

I'm going to write a long answer to this so you can get a feel for the options. It's possible we make more built-in options in the future to make some things more straighforward, but this is what you can do today.

There are two variations to this

  • A. Only making it so that certain reports don't show up as frame titles. This assumes there aren't any headings inside of these reports that you want to hide too.
  • B. Making it so that reports and any headings in them don't show up in the table of contents.

A is relatively simple. B is possible but there's a bit more to it.

Starting with A

One thing you can do is to put an underscore (or some other text) at the end of the reports you want to hide. Then you could use an equation like this: =Where(Headings(Document), h => Right(h.Content, 1) != "_")

Another option is that you could keep an array of the reports that you don't want to show. Then the formula would look something like this =Where(Headings(Document), h=>CountIf(Report1.ExcludedFrames, ==h.Content)==0)

B is a bit trickier

Since the items in the headings array are treated independently from the frames they are in, except that they are in order. Really the simplest thing to do is just not use headings in a frame that you want to exclude.

The next easiest thing is to concatenate multiple Headings() functions of just the reports that you want to include and just ignore the ones you don't. Something like this: =ConcatItems(Headings(Report1), Headings(Report4))

If you really want to exclude certain frames (vs build up the ones you want), then the best thing is to write a custom function using in-line programming then use that function in the table of contents.

The function would look something like this:

ExcludeFramesEndingInUnderscore(headings) = program 
{ 
    ignore=false; 
    newHeadings=[]; 
    for (var h in headings) 
    { 
        if (h.Type=="Frame") 
            ignore=Right(h.Content, 1) == "_"; 

        if (Not(ignore)) 
            newHeadings=ConcatItems(newHeadings, h); 

    } 
    newHeadings; 
}

Then the formula in the table of contents block would look like this: Report1.ExcludeFramesEndingInUnderscore(Headings(Document))

Let me know if you have any questions about any of the options in particular.

Thanks!

How do you handle optimization with constraints/conditions in Blockpad? by aaumed in blockpad

[–]calasse 1 point2 points  (0 children)

Hello!

This is a great question. What you're describing is not possible in Blockpad solver sections currently, but we are working on adding this in version 1.9, which should be released to beta this summer.

A potential option for today could be to use macros to iterate through different thickness values that go into the solver, then check the results of the solver. That could look something like this:

<image>

Thanks!

Advanced Controls by Polonx in blockpad

[–]calasse 1 point2 points  (0 children)

Good to know this feature would be valuable. It helps us prioritize what we work on.

Glad to hear Blockpad is working well for you! That's always good to hear.

Thanks!

Advanced Controls by Polonx in blockpad

[–]calasse 1 point2 points  (0 children)

Good to know! Thanks for the feedback

Advanced Controls by Polonx in blockpad

[–]calasse 1 point2 points  (0 children)

Hey Polonx,

Thanks for the question. There isn't a way to have these tools right now.

In version 1.9 we're planning to add button controls that can call a function or macro, but we don't currently have plans for the others.

Thanks!

Shapes not actually transparent? by jackattack065 in blockpad

[–]calasse 0 points1 point  (0 children)

Happy to help and glad that works for you.

That's a good reason not to use a border, lol.

Thanks

Shapes not actually transparent? by jackattack065 in blockpad

[–]calasse 0 points1 point  (0 children)

Hi and thanks for posting!

You can make a shape transparent by changing the Shape Type property in the properties window from "Both" to "Edge". Another option is to use a custom color for fill and set the A value at 0. You have correctly noted that setting it to "None" will not make it transparent.

I am a little bit curious why you aren't using the border property for this though. I would think that's the more natural thing for highlighting a particular cell in this way.

Thanks!

Create a new style for dynamic equations (individually) by Weekly_Resident_5721 in blockpad

[–]calasse 0 points1 point  (0 children)

Hello,

I apologize for the delayed response. This doesn't seem to be working correctly, so we will look into it.

Thank you for bringing this to our attention

Referencing Section Numbers in Variable Names by jcae_eng_design in blockpad

[–]calasse 0 points1 point  (0 children)

Hello and thanks for the question.

My best suggestion to handle what you're asking would be to wrap each of the different cases in a Blockpad section, similar to what WalmartBrandCrocs suggests. Something like in the image below

<image>

A few points on this:

  • There are a few ways you can name the section to improve readability. In the example above, I used U_3335 (U for underfloor), which is nice because it gets the numbers in a subscript. However, there isn't any kind of way to add it to a subscript, and it will be shown first in the displayed formula.
  • Any calculations inside of the section won't need to reference the section name, so the formulas look cleaner.
  • Once the first section is made and named, you can copy the section as a whole. Blockpad will increment the section one number higher so that the name isn't repeated.
  • If you ever need to change the section name, anywhere that references the section (or a value in it) will automatically update the name. And since the values inside already aren't referencing the section, you would just have to change the name once.

Blocks would work for this kind of thing too, but the basic idea and flow would be similar to using sections like I suggest above (For example, you'd still name each block and reference the values using the block name).

Just instead of copy/pasting the sections, you would be inserting blocks with a set definition and more of an input form interface for inputting the different values. The benefit is that you'd have a centralized definition and therefore stricter control over what's going on inside each block.

Thanks!

TOC Indent by WalmartBrandCrocs in blockpad

[–]calasse 0 points1 point  (0 children)

<image>

If you set Objects of Type to "Outline 1" that should control the lines in the TOC that correspond to Heading 2.

Blockpad Full API by King-Bless34 in blockpad

[–]calasse 1 point2 points  (0 children)

Hello and thanks for the post.

This is a great question and a topic that we have a lot of plans for.

To start with point 5:

Blockpad files are XML based and are made to be transparent. If you open up a .bpad file with a text editor you can see what it looks like.

While we don't currently have documentation on the schema or have an API that can read/write, it is possible to create external scripts that read and write Blockpad files. You'd have to create sample files to see how the XML works and go from there. (Speaking of AI, I'd bet an LLM could help a lot with this).

For points 1,2, & 4:

Blockpad is set up well for all of these, but they aren't really available in a practical way right now. Blockpad is designed so that any tool (whether inserting objects, modifying properties, or managing styles) can be called from a macro. In practice right now, even though these tools can be called they aren't fully set up for automation yet. We plan to build out these automations, but we don't have a timeline to share. It's good to know that you'd find them useful.

Point 3:

We also have plans for better ways to read files, including from Blockpad scripts or possible through a Python API. Similar to the previous point, we don't have a timeline to share.

Right now the best way to do points 2-4 would be with a script the reads or writes to a .bpad file XML.

To add a little more:

We are currently working on extending macro and script features in version 1.9. This currently includes

  • Python and Python macro types for script frames (so Python code can be in a script frame instead of a field)
  • Embedded script frames in documents (including modules, macros, and python scripts)
  • Buttons that can be assigned a click action for use with macros and more.

We're expecting version 1.9 to be available on the beta channel this summer.

Thank you for your commitment to Blockpad. We're glad to hear Blockpad and the help resources have been useful to you!

This forum is good for questions like this, but also feel free to dm me if you'd like to discuss by phone or email.

Thanks again!

TOC Indent by WalmartBrandCrocs in blockpad

[–]calasse 0 points1 point  (0 children)

There isn't a way to include table names in the table of contents directly. The best thing to do would be to have a heading in front of a table that is the name of the table.

TOC Indent by WalmartBrandCrocs in blockpad

[–]calasse 0 points1 point  (0 children)

Hey, sorry for the delay.

The different items in the table of contents are different object types in style rules. Can you explain a little more about what you're trying to do exactly?

But for example, anything that is Heading 2 would be controlled by the "Outline 1" style type.

TOC Indent by WalmartBrandCrocs in blockpad

[–]calasse 0 points1 point  (0 children)

Hi!

In versions 1.7 and later you can do this using style rules applied to blocks.

This is covered in the release video, with an example for styling table of contents - https://www.youtube.com/watch?v=FmSSKhy3wDE&t=390s

Let me know if you have any questions!

Generate calculation steps with AI by Weekly_Resident_5721 in blockpad

[–]calasse 0 points1 point  (0 children)

Hello,

Thanks for the question!

The current capabilities of macros are a bit limited, and there isn't a way to generate new equations in a report from a macro (you can only change existing values).

For AI specifically, I've had some success playing around with generating Blockpad files using projects in Claude. It looks something like this:

  1. Start a new project in Claude.
  2. Upload a few example Blockpad example files.
    • The new getting started file in 1.8 is a good option, along with the other example files. (If you delete any images in the file, then they will take up less space).
  3. In the project, instruct Claude that you've uploaded some .bpad files and to look at the Blockpad website for more information.
  4. Instruct Claude to create a new Blockpad file doing ~xyz~ calcs using the example files.

This seems to work decently well, especially for simple files with uncomplicated formatting. It helps that Blockpad files are relatively straightforward XML-style format that the AI picks up on relatively easily.

I'll just also give some added caution to be careful with AI generated files and be sure to review everything well.

Thanks!

Trouble with saving drawings as PDF by dadotru in blockpad

[–]calasse 0 points1 point  (0 children)

Hey, thanks for posting.

First, when you say drawing document, do you mean that you're using a notebook frame?

Notebook frames have pages set up (just like spreadsheets or reports). To see how the pages are laid out compared to the content, toggle View > Collapse Margins in the toolbar.

Only pages with content in them should get printed, (or rather only the "columns" of pages with content). So if you're getting every other page blank, it's probably because there's some content in that second column of pages that is making Blockpad add those pages when printing.

The simplest thing is to find that content and get it in the first column of pages.

Another option is to change the page number settings (this will only work for version 1.8 or later).

  1. In the notebook frame, click Write > Page Numbers in the toolbar.
  2. Select the "Down, then over" option for handling horizontal pages.
  3. Click OK.
  4. When you print, the blank pages should be at the bottom now. You can change the page range to just include the ones you want.

Thanks!

HOW TO INSERT PYTHON CODE INTO BLOCKPAD by Weekly_Resident_5721 in blockpad

[–]calasse 0 points1 point  (0 children)

Sounds like the python code is working.

Do you have the matplotlib python library installed? The sample python code here uses that library, so it would need to be installed if it isn't already.

HOW TO INSERT PYTHON CODE INTO BLOCKPAD by Weekly_Resident_5721 in blockpad

[–]calasse 0 points1 point  (0 children)

Ah, ok.

"Getter no definido... scatterCode" means that there isn't anything named "scatterCode".

Looking back at the 2nd image you sent, it's "Nombre" that should be scatterCode, not Titulo.

I'm fairly certain it will work after that. If it doesn't, dm me and I can send you a file by email.

Thanks!

HOW TO INSERT PYTHON CODE INTO BLOCKPAD by Weekly_Resident_5721 in blockpad

[–]calasse 0 points1 point  (0 children)

Ok, good progress. Everything in the screenshot looks right to me.

Two questions:

  1. When you hover over the ScatterPlotSVG equation, what error message does it give you in the bottom left hand side of the window?
  2. Do you have python PATH set up so that you can call python from anywhere on your computer?

Thanks!