Drawing convex polyiamonds Description
OEIS sequence A096004 gives the

Number of convex triangular polyominoes [polyiamonds] containing n cells.

It begins:
1, 1, 1, 2, 1, 2, 2, 3, 2, 2, 2, 3, 2, 3, 3, 5

For example, a(8)=3 with the following three convex polyiamonds:
Input: 8
Output:
  *---*---*---*---*
 / \ / \ / \ / \ /
*---*---*---*---*

    *---*---*
   / \ / \ /
  *---*---*
 / \ / \ /
*---*---*

    *---*
   / \ / \
  *---*---*
 / \ / \ / \
*---*---*---*


Requirements
The goal of this challenge is to write a program that takes in an integer n (in any reasonable format) and outputs ASCII art of all convex polyiamonds with n cells (in any orientation), with each polyiamond separated by two newlines.
Your program must be able to handle up to a(30) in under 60 seconds.

Scoring
This is a code-golf challenge, so fewest bytes wins.
Ruby, 202 bytes



-&gt;n{(r=[*0..n]).product(r,r,r).map{|i|p,b,c,d=i;b&gt;c||c&gt;d||b+c+d&gt;p||p*p-b*b-c*c-d*d!=n||0.upto(p-d&lt;&lt;1){|j|s=" "*j+"*---\\ / "[j%2*4,4]*p*2;(k=b*4-j)&gt;0&amp;&amp;s[0,k]=" "*k;puts s[0,[p*4+1-j,p*4+1-c*4+j].min]}}}


Try it online!

Uses formula per the OEIS sequence: search for solutions where n = p**2 - b**2 -c**2 - d**2. 

n =the number of triangular tiles

p =the side length of a large equilateral triangle (pointing downwards)

b,c,d =the side length of three smaller equilateral triangles, which are removed from the corners of the large equilateral triangle to get the required shape.

Some additional conditions (per OEIS) are needed to avoid duplicates:
b&lt;=c&lt;=d and b+c+d&lt;=p