ArchiRADAR Forum
ArchiRADAR Forum =>
GDL => Topic aperto da: project05 - 04 Gennaio 2012, 18:52
-
Buonasera! mi sono appena iscritto su questo ottimo forum e questa è la mia prima discussione!
Mi occorreva la possibilità di effettuare la quotatura 3d in archicad 11 e così ho trovato l'ottimo tutorial di Fabrizio Diodati. Bene: ho compilato tutto il testo gdl 3d indicato, fatto il debug( tutto a posto) , ma una volta aperto l'oggetto mi ritrovo con un "qualcosa" che ha la linea di quota, le linee ortogonali ad essa, le frecce ma, manca il testo, addirittura ho provato a togliere la parte:
IF ruota THEN
ADD A/2, B/3*2-dim_carattere, zzyzx
ROTz 180
ELSE
ADD A/2, B/3*2+dim_carattere, zzyzx
ENDIF rrr=request ("Linear_dimension", "", lin_form)
quota=STR (lin_form, A)
TEXT 0, 0, quota
DEL TOP
che dovrebbe dare la quota e tutto rimane come prima, cioè sembra che quest'ultima informazione sia ininfluente!
Qualcuno sarebbe così gentile da dirmi dove può essere il problema?
-
Hai creato i parametri richiesti e, soprattutto, assegnato un valore (diverso da zero) all'altezza del carattere?
Io ho provato solo la quota orizzontale (non quella verticale, e mi pare che sia tutto a posto.
Testo GDL 2D
HOTSPOT2 0,0
HOTSPOT2 A,0
HOTSPOT2 A,B
HOTSPOT2 0,B
unID=0
unID=unID+1
HOTSPOT2 0, B/3*2, unID, A, 1+256
unID=unID+1
HOTSPOT2 -1, B/3*2, unID, A, 3
unID=unID+1
HOTSPOT2 A, B/3*2, unID, A, 2
PROJECT2 3, 270, 0
Testo GDL 3DIF SYMB_MIRRORED THEN
ADDx A
MULx -1
ENDIF
DEFINE STYLE "quotatura" carattere, dim_carattere*1000, 5, 0
SET STYLE "quotatura"
HOTSPOT 0, 0, zzyzx
HOTSPOT A, 0, zzyzx
HOTSPOT A, B, zzyzx
HOTSPOT 0, B, zzyzx
LIN_ 0, B/3*2, zzyzx, A, B/3*2, zzyzx
LIN_ 0, 0, zzyzx, 0, B, zzyzx
LIN_ A, 0, zzyzx, A, B, zzyzx
LIN_ 0, B/3*2, zzyzx, dim_marker, B/3*2+dim_marker, zzyzx
LIN_ 0, B/3*2, zzyzx, dim_marker, B/3*2-dim_marker, zzyzx
LIN_ A, B/3*2, zzyzx, A-dim_marker, B/3*2+dim_marker, zzyzx
LIN_ A, B/3*2, zzyzx, A-dim_marker, B/3*2-dim_marker, zzyzx
IF ruota THEN
ADD A/2, B/3*2-dim_carattere, zzyzx
ROTz 180
ELSE
ADD A/2, B/3*2+dim_carattere, zzyzx
ENDIF
rrr=request ("Linear_dimension", "", lin_form)
quota=STR (lin_form, A)
TEXT 0, 0, quota
DEL TOP
-
Ciao e anzitutto mille grazie per la tempestività della risposta!
Ho controllato i parametri che dicevi tu, ma tutto era come prima. Ho confrontato il codice scritto da me e quello postato da te e non avevo notato differenze, cosicchè alla fine ho creato l'oggetto da zero e ho copiato direttamente il tuo testo e FUNZIONA!! solo non capisco come mai, nel codice postato da te, non compaia la parte iniziale relativa alla regolazione degli hotspot, cioè questa:
unID=unID+1
HOTSPOT 0, B/3*2, zzyzx, unID, A, 1+256
unID=unID+1
HOTSPOT -1, B/3*2, zzyzx, unID, A, 3
unID=unID+1
HOTSPOT A, B/3*2, zzyzx, unID, A, 2
in ogni caso, grazie di nuovo, ieri sera stavo impazzendo dietro a questa cosa!
-
Probabilmente quando ho copiato il testo dallo script dal mio oggetto non l'ho preso tutto dall'inizio. Aggiungi anche quelle righe, per avere la possibilità di allungare e accorciare la quota graficamente in 3D.
Magari, come ho fatto nello script 2D, falle precedere dall''istruzione "unID=0". Non è essenziale, ma l'interprete GDL delle ultime versioni fa più controlli, quando si chiede la verifica del codice, e in questo caso ti avvertirebbe che c'è una variabile non inizializzata.