abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Wir schätzen Ihren Input!
Bitte nehmen Sie an der Umfrage zu Archicad 28 Startbildschirm und Lerninhalte/Schnell-Tutorials teil

Modellierung
Entwurfswerkzeuge von Archicad, Elementverbindungen, Modellierungskonzepte usw.

Regelmäßiges N-Eck?

jenglert
Newcomer
Hallo,
wie kann ich denn ein regelmäßiges, sagen wir 8-Eck zeichnen (reine 2D-Linien genügen)? In unserem bisherigen Programm gab's da so einen schicken Befehl, wo ich nur noch die Anzahl der Ecken angeben musste, und päng...Geht sowas auch mit AC?
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen. (Dieter Hildebrandt)
24 ANTWORTEN 24
Anonymous
Nicht anwendbar
Und weils so schön ist:
Mit Schraffur:

3 zusätzliche Parameter erzeugen:

Name,Typ,Beschreibung:

Schraffur,fill,"Hintergrundschraffur"
StiftS,pen,"Schraffurstift"
StiftH,pen,"Hintergrundstift"

Und dann den Code im Masterskript ändern:

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">n=max(n,3)

parameters b=a
b=a
if GLOB_CONTEXT=5 then lock "b"

if Schraffur then fill Schraffur

w=360/n
v=(180-w)/2
l=sin(w)*a/2/sin(v)

hotspot2 0,0
hotspot2 -a/2,0

add2 a/2,0
rot2 180-v

for i=1 to n
if StiftS and Schraffur then
poly2_B 3,1+2+4, StiftS,StiftH, a/2*cos(v),a/2*sin(v),0, 0,0,1, l,0,0
else
line2 0,0,l,0
endif
hotspot2 0,0
add2 l,0
rot2 w
next i
surb
Booster
hi ove,
lese gerade begeistert die gdl programmierung von dem n-eck,

aber jetzt fehlt noch dass ich die schraffur ein oder ausschalten kann, und dass ich mir die art der schraffur wählen kann

surb;-)
zzyzx
Newcomer
so, hier ist noch einer:
... mein erster fastgleichgeklappter put versuch (stolzstrahlend)
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">n=max(n,3)
parameters b=a
b=a
if GLOB_CONTEXT=5 then lock "b"
w=360/n
wn = 0
for i = 1 to n
put cos(wn)*a,sin(wn)*a,1
wn = wn+w
next i
put cos(0)*a,sin(0)*a,-1
fill schraffur ! schraffur ist ein Parameter Schraffurfüllmuster
!!pen stiftu ! stiftu = Stift für die Umrandung (kann man weglassen)
poly2_B n+1, 3, stifts, stifth, !stifts = Schraffurlinienstift, stifth = Hintergrundfarbe
get (nsp)
hotspot2 0,0
hotspot2 a,0
:winken: :winken: :winken:
grad noch bisschen verbessert

[ 22. September 2003, 15:35: Beitrag editiert von: zzyzx ]
zzyzx
Newcomer
@ surb:
du musst noch - zusätzlich zu n - drei weitere parameter einbauen:
schraffur (ist das Schraffurmuster)
stifts (ist der Stift für die Schraffurlinien)
stifth (ist die Hintergrundfarbe)
😛
zzyzx
Newcomer
jetzt noch das Ganze mit Fangpunkten:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">n=max(n,3)
parameters b=a
b=a
if GLOB_CONTEXT=5 then lock "b"
w=360/n
wn = 0
for i = 1 to n
put cos(wn)*a,sin(wn)*a,1
wn = wn+w
next i
put cos(0)*a,sin(0)*a,-1
fill schraffur ! schraffur ist das Schraffurfüllmuster
if stiftu = 0 then stiftu = 1
pen stiftu ! stiftu = Stift für die Umrandung (kann man weglassen)
poly2_B n+1, 3, stifts, stifth, !stifts = Schraffurlinienstift, stifth = Hintergrundfarbe
use (nsp)
hotspot2 0,0
hotspot2 a,0

for ii = 1 to 3
trash = get (1)
next ii
for iii = 2 to n
hotspot2 get (2)
trash = get (1)
next iii
da man die ganzen mühsam errechneten ja noch für die Fangpunkte braucht, habe ich 'get' durch 'use' ersetzt (der 'get' löscht die Werte aus der Liste!)
die Variable 'trash' wird verwendet, um einen unnötigen Eintrag im Parameterspeicher zu löschen (nämlich den maskwert 1, den man für das Polygon benötigt hat)

[ 22. September 2003, 15:59: Beitrag editiert von: zzyzx ]

Keine Antwort gefunden?

Andere Beiträge
im Board ansehen

Zurück zum Board

Neueste Lösungen durchsuchen

Akzeptierte Lösungen zeigen

Eine neue Diskussion starten!

Neues Thema erstellen