Archicad C++ API
About Archicad add-on development using the C++ API.
SOLVED!

edges of Poly2_b{5} curves convert to HotArc2

GDL Enthusiast
Enthusiast

Hi Experts,

 

I would like to add some clickable edges to a Poly2_b{5}. At the moment I can only click in the middle of the Poly2_b{5} fill to select it. I need to be able to select the outer perimeter for aligning the edges to other objects.

 

I can match the Hotline2 commands to the linear edges of the Poly2_b{5}. However how can I HotArc2 the Poly2_b{5}curves? Or is there any other way to make the edges clickable?

 

Poly2_b{5} uses the Arc using centerpoint and angle with the 900 and 4000:

x0, y0, 900, !Set centerpoint
0, a, 4000+s, !Arc using centerpoint and angle

 

Whilst Hotarc2 uses:

hotarc2 xCenterPoint, yCenterPoint, radius, angleStart, angleEnd, unID

 

Is there a way to write duplicate and change the original Poly2_b{5} code so that Hotarc2 can follow the curves of the Poly2_b{5}? 

 

Thank you so much for your help, I have been battling this for several days!

2 ACCEPTED SOLUTIONS

Accepted Solutions
Solution

No, The hotarc's and hotlines have to be scripted separately, you can use the polyline values (if using put or matrix parameters obviously, but it has to be phrased and the angles calculated on center and starting point/ angle in poly definition.

Piotr

View solution in original post

Solution
Lingwisyer
Guru

Time to pull out the highschool trigonometry!

 

arctan( dx / dy )

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win11 | i9 10850K | 64GB | RX6600 Win10 | R5 2600 | 16GB | GTX1660

View solution in original post

11 REPLIES 11
Solution

No, The hotarc's and hotlines have to be scripted separately, you can use the polyline values (if using put or matrix parameters obviously, but it has to be phrased and the angles calculated on center and starting point/ angle in poly definition.

Piotr

Solution
Lingwisyer
Guru

Time to pull out the highschool trigonometry!

 

arctan( dx / dy )

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win11 | i9 10850K | 64GB | RX6600 Win10 | R5 2600 | 16GB | GTX1660

sin / cos rather... tan-likes can blow up  😜

Lingwisyer
Guru

One of my objects contains trig equations which exceed the line limit so have to be split into various parts...

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win11 | i9 10850K | 64GB | RX6600 Win10 | R5 2600 | 16GB | GTX1660

use the Force Luke: and use "\"  😜

Hi Piotr, thanks so much, I had wondered but thought I would check. Thank you again!

Hi Lingwisyer, thank you to for responding, I will have to look up arctan( dx / dy ) and dust off some maths books. All the best!

tanΘ = opposite / adjacent

In this case. Change in X (dX) / Change in Y (dY) between your starting node and the centre node.

arctan is the same as tan⁻¹

Θ = arctan( dx / dy )

You may then need to add 90 depending on whether zero is vertical or horizontal. You may also need to subtract Θ from 360 if X₁ < X₂

 

 

 

Ling.

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win11 | i9 10850K | 64GB | RX6600 Win10 | R5 2600 | 16GB | GTX1660

I mean the *character limit for a string, which a new line does not fix. I did not know about this identifier.

 

In reality I should probably break it down more as it is the merge of several equations so by breaking it down it would be easier to understand. On several occasions I have myself needed to work parts of the equations backwards to figure out what they actually did...

 

 

 

Ling.

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win11 | i9 10850K | 64GB | RX6600 Win10 | R5 2600 | 16GB | GTX1660