abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

Standard Detailmarker

Anonymous
Nicht anwendbar
Hallo, wie kann ich denn im Standard Detaimarker den Linientyp und den Stifttyp für das Markerpolygon festlegen ? habe schon einen neuen Parameter eingefügt im 2D Script, hatte leider keine Auswirkungen. Nun weiß ich nicht weiter. Vielleicht gibt es diese Parameter schon oder ich habe den Einfügungsort falsch gewählt ?
gruß
görge
20 ANTWORTEN 20
Anonymous
Nicht anwendbar
Ich habs in AC 8.1 so gelöst und es funktioniert bisher ohne Probleme (im kopierten Objekt mit neuem Namen) :

Im Parameterfenster zwei neue Parameter erstellen
in diesem Fall AC_PenNEU für den Stift und AC_LineNEU für den Linientyp.

Im 2D Skript habe ich die folgenden Änderungen bzw. Ergänzungen durchgeführt:

! pen AC_ClippPen ! deaktiviert******************
! line_type AC_ClippLineType ! deaktiviert******************
pen AC_PenNEU ! neu programmiert **********
line_type AC_LineNEU ! neu programmiert **********
Frank Beister
Advisor
Das war zu vermuten. 🙂 Ich würde nur das AC_ weglassen für die neuen Linien. Das ist definitiv eine Bezeichnung, die nur von GS her verwendet werden sollte.
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
Anonymous
Nicht anwendbar
@frank
deine Ausführungen über ac_ und AC_ kamen mir dazwischen 😉 .
Ist aber für die Zukunft trotzdem gut zu wissen.
Anonymous
Nicht anwendbar
durch die Bemerkungen von Frank über globale Parameter habe ich nochmal nachgedacht.
Ich habe die zwei neuen Parameter im Script nun direkt vor einen poly2_ Befehl gesetzt (hier bei der Beschreibung für 'gerundetes Rechteck') und nun kann ich dieses Markerpolygon separat definieren. Setze ich die Parameter direkt hinter die globalen Parameter, werden sie wieder ignoriert. Ich hatte halt gedacht daß dies übergeordnet für alle Markerpolygone zu machen sei.
Copy + Paste der zusätzlichen Parameter für jeden poly_2 etc ist ja auch eine Lösung
Warum das so ist bleibt mir aber schleierhaft

vielen Dank für eure Hilfe

P.S. : wo ist bei AC 9 eigentlich der MenüLink zu der GDL-Hilfe geblieben?
Frank Beister
Advisor
Ich verstehe zwar nicht ganz was du gemacht ast, aber vielleicht klärt das:

Die Befehle PEN und LINE_TYPE setzen die Attribute für alle nachfolgenden Elemente. Diese Einstellungen gelten bis Skriptende oder neuerlichem Ändern dieser Attribute. Deswegen muß dein POLY_ nach den beiden Befehlen mit den beiden Parametern stehen. Woher der Wert für den Befehl kommt, ist GDL da egal. Ob global oder lokal ist wurscht. Einzig der Wert des Parameters zum Zeitpunkt seiner Abarbeitung zählt.
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
Anonymous
Nicht anwendbar
Hast du die ursprünglichen Parameter auch mit einem Rufezeichen am Anfang der Zeile deaktiviert ?

Wenn ja, dann ist das 9er Script doch etwas verändert worden oder AC arbeitet das Skript anders ab. In AC 8.1 funktionierts global.
Anonymous
Nicht anwendbar
hier mal das Sript:

!! =============== marker polygon =======================================

if gs_follow_clipp=`Ausschnittpolygon folgen` then
if AC_ClippNodes>0 then
for i=1 to AC_ClippNodes
put AC_ClippCoord[1]
next i

gs_boundary_rect[1][1]=min(use(nsp))
gs_boundary_rect[1][3]=max(get(nsp))

for i=1 to AC_ClippNodes
put AC_ClippCoord[2]
next i

gs_boundary_rect[1][2]=min(use(nsp))
gs_boundary_rect[1][4]=max(get(nsp))
endif
endif

!!!!rect2 gs_boundary_rect[1][1],gs_boundary_rect[1][2],gs_boundary_rect[1][3],gs_boundary_rect[1][4]

pen AC_ClippPen
line_type AC_ClippLineType
fill AC_MarkerFill

pen KUHStanDet_A
line_type KUHStanDet_B


unID=1
!!!If AC_Clipp Then
add2 AC_RefCoord[1][1],AC_RefCoord[1][2]
if gs_marker_polygon=`Ausschnittpolygon` then
for i=1 to AC_ClippNodes
hotspot2 AC_ClippCoord[1],AC_ClippCoord


von mir eingesetzt die Parameter mit KUH..
--> an dieser Stelle eingesetz ist die Wirkung gleich Null.
wenn ich die AC_Clipp... Parameter mit ! deaktiviere wird das Markerpolygon immer schwarz mit Volllinie, der Polygontyp wird durch den Standarddialog definiert.

Hier mein jetziges Vorgehen am Beispiel des 'gerundeten Rechteckes'


hotspot2 -1,0,unID,gs_round_rad,3 : unID=unID+1
hotspot2 gs_round_rad,0,unID,gs_round_rad,2 : unID=unID+1
del 2

pen KUHStanDet_A
line_type KUHStanDet_B


poly2_ 13, 1,
gs_boundary_rect[1][3]-gs_polygon_rad, gs_boundary_rect[1][2], 1,
gs_boundary_rect[1][3]-gs_polygon_rad, gs_boundary_rect[1][2]+gs_polygon_rad, 901,
0, 90, 4001,


Bei der Definition der Parameter innerhalb der if else Schleifen ? wird alles so wie ich mir das wünsche, ich muss es nur bei jeder Markerpolygonbeschreibung einfügen, da die
Anonymous
Nicht anwendbar
Frank, so hatte ich das ja auch erwartet (jedenfalls unter 8.1 war es so)
zumindest beim Detailmarker ist es aber nicht so
Anonymous
Nicht anwendbar
Eigenartig das Skript scheint nicht grossartig verändert.

Hier nochmals das Skript von AC 8.1 mit den Änderungen.


!! =============== marker polygon =======================================

if gs_follow_clipp=´Follow Clipping Polygon´ then
if AC_ClippNodes>0 then
for i=1 to AC_ClippNodes
put AC_ClippCoord[1]
next i

gs_boundary_rect[1][1]=min(use(nsp))
gs_boundary_rect[1][3]=max(get(nsp))

for i=1 to AC_ClippNodes
put AC_ClippCoord[2]
next i

gs_boundary_rect[1][2]=min(use(nsp))
gs_boundary_rect[1][4]=max(get(nsp))
endif
endif

!!!!rect2 gs_boundary_rect[1][1],gs_boundary_rect[1][2],gs_boundary_rect[1][3],gs_boundary_rect[1][4]

!pen AC_ClippPen ! 27.4.2006 probehalber deaktiviert!!!******************
!line_type AC_ClippLineType ! 27.4.2006 probehalber deaktiviert!!!******************
pen PenNEU ! 27.4.2006 probehalber neu programmiert!!!******************
line_type LineNEU ! 27.4.2006 probehalber neu programmiert!!!******************
fill AC_MarkerFill

unID=1

etc. etc.
Anonymous
Nicht anwendbar
Hast du versucht den (nun immer) schwarzen Rahmen im Dialog unter "Detailrahmen" zu verändern ? Ich kann dort die Farbe ändern trotz Deaktivierung der AC_ .. Parameter.