Textblock: Font type
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2021-08-26
11:22 PM
- last edited on
‎2021-09-14
08:49 AM
by
Noemi Balogh
‎2021-08-26
11:22 PM
Hi all,
I'm trying to create a multipurpose textblock function. Basically its working but I have trouble with setting correct font style and font face.
Any ideas why? AC finds no errors.
Thanks for any help
Dominic
I'm trying to create a multipurpose textblock function. Basically its working but I have trouble with setting correct font style and font face.
Any ideas why? AC finds no errors.
!-- Init _iPgNr = 0 _iBkNr = 0 p_to_m = GLOB_SCALE / 1000 !-- Syles define style{2} "globStyle" "Papyrus", 2.5 * p_to_m, 4 define style{2} "S1" "Arial", 1.0 * p_to_m, 0 define style{2} "S2" "Times", 1.5 * p_to_m, 1 define style{2} "S3" "Luminari", 4.0 * p_to_m, 0 define style{2} "S4" "Arial Black", 4.0 * p_to_m, 32 !-- Base hotspot2 0,0 !-- Setup _rt dict _rt _rt.x = 0.5 _rt.y = 0.5 _rt.anchor = 1 _rt.align = 1 _rt.style = "globStyle" !-- First Block _rt.line[1].part[1].s = "S3" _rt.line[1].part[1].v = "Luminari normal " _rt.line[1].part[2].s = "S4" _rt.line[1].part[2].v = "Arial Black sup " _rt.line[1].part[3].s = "S3" _rt.line[1].part[3].v = "Luminari normal " _rt.line[1].part[4].s = "S4" _rt.line[1].part[4].v = "Arial Black sup" _rt.line[2].v = "Times bold" _rt.line[2].s = "S2" _rt.line[3].v = "Papyrus underline" !_rt.line[3].s = "S3" !-> use global style _rt.line[4].s = "S1" _rt.line[4].v = "Arial normal" _rt.line[5].part[1].s = "S1" _rt.line[5].part[1].v = "" _rt.line[5].part[2].s = "S2" _rt.line[5].part[2].v = "Times Bold" gosub "rtBlock" rect2 _rt.x, _rt.y, _rt.x + _rtWidth, _rt.y + (-1 * _rtHeight) !-- Second Block add2 0,-1* (_rtHeight + 0.1) _rt.line[1].s = "S1" _rt.line[1].v = "Luminari normal" gosub "rtBlock" rect2 _rt.x, _rt.y, _rt.x + _rtWidth, _rt.y + (-1 * _rtHeight) !======================================================================================================================= end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! end ! !======================================================================================================================= !======================================================================================================================= "rtBlock": ! ---------------------------------------------------------------------------------------------------------------------- ! Mehrzeiliger Text als Richtext ausgeben. ! Es können mit .part[] pro Paragraph mehrere verschiedene Textstile gesetzt werden. ! Stift muss vor Aufruf gesetzt werden. !----------------------------------------------------------------------------------------------------------------------- ! ! Caller: ! _rt - (dict) ! .x - (real) x-Position des Richtextes ! .y - (real) y-Position des Richtextes ! .anchor - (int) Textanker ! .align - (int) Ausrichtung der Paragraphen ! .style - (string) Style für alle einfachen Zeilen ! .line - (array) Array mit Texten pro Zeile ! !----------------------------------------------------------------------------------------------------------------------- ! ! Responder: ! _rtHeight - (real) Textblock Höhe ! _rtWidth - (real) Textblock Breite ! !----------------------------------------------------------------------------------------------------------------------- ! ! Other: ! _iPgNr - (int) Paragraph-Index (am Anfang des Scipts initialisieren und auf 0 setzen) ! _iBkNr - (int) Block-Index (am Anfang des Scipts initialisieren und auf 0 setzen) ! !----------------------------------------------------------------------------------------------------------------------- ! ! Help: ! mögliche Struktur für _rt.line[]: ! .line.s - (string) Style (optional) ! .line.v - (string) Text ! ! oder: ! .line.part.s - (string) Style ! .line.part.v - (string) Text ! ! * m darf aktuell maximal 4 sein! (weitere Teile werden ignoriert) ! !======================================================================================================================= __nLines = vardim1(_rt.line) for q = 1 to __nLines _iPgNr = _iPgNr+1 put _iPgNr if haskey(_rt.line.v) then if haskey(_rt.line.s) then paragraph _iPgNr _rt.align, 0, 0, 0, 1 style _rt.line.s _rt.line.v + "\ts = " + _rt.line.s endparagraph else paragraph _iPgNr _rt.align, 0, 0, 0, 1 _rt.line.v + "\tgs = " + _rt.style endparagraph endif else if haskey(_rt.line.part) then if vardim1(_rt.line.part) = 1 then paragraph _iPgNr _rt.align, 0, 0, 0, 1 style _rt.line.part[1].s : _rt.line.part[1].v endparagraph endif if vardim1(_rt.line.part) = 2 then paragraph _iPgNr _rt.align, 0, 0, 0, 1 style _rt.line.part[1].s : _rt.line.part[1].v style _rt.line.part[2].s : _rt.line.part[2].v endparagraph endif if vardim1(_rt.line.part) = 3 then paragraph _iPgNr _rt.align, 0, 0, 0, 1 style _rt.line.part[1].s : _rt.line.part[1].v style _rt.line.part[2].s : _rt.line.part[2].v style _rt.line.part[3].s : _rt.line.part[3].v endparagraph endif if vardim1(_rt.line.part) >= 4 then paragraph _iPgNr _rt.align, 0, 0, 0, 1 style _rt.line.part[1].s : _rt.line.part[1].v style _rt.line.part[2].s : _rt.line.part[2].v style _rt.line.part[3].s : _rt.line.part[3].v style _rt.line.part[4].s : _rt.line.part[4].v endparagraph endif else paragraph _iPgNr _rt.align, 0, 0, 0, 1 !style _rt.style "No Text to print!" endparagraph endif endif next q _iBkNr = _iBkNr+1 __bkName = "bk" + str("%",_iPgNr) style _rt.style textblock_ __bkName 0, _rt.anchor, 0, 1, 1, 0, __nLines, get(__nLines) richtext2 _rt.x, _rt.y, __bkName _dummy = REQUEST ("TEXTBLOCK_INFO", __bkName, _rtWidth, _rtHeight) _dummy = removekey(_rt.line) return
Thanks for any help
Dominic
AC27 CHE - macOS Ventura M1
Labels:
- Labels:
-
Library (GDL)
2 REPLIES 2
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2021-08-27 04:16 PM
‎2021-08-27
04:16 PM
I did some testig and I think it's a general problem with paragraphs and different fonts.
I created a native text in ac with several lines and different fonts each line.
then saved as new object.
source code is as expected but representation is wrong.
What am I doing wrong?
Dominic
I created a native text in ac with several lines and different fonts each line.
then saved as new object.
source code is as expected but representation is wrong.
paragraph set style "style 1" "text" endparagraph paragraph set style "style 2" "text" endparagraph
What am I doing wrong?
Dominic
AC27 CHE - macOS Ventura M1

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2021-09-15 12:44 PM
‎2021-09-15
12:44 PM
The problem is with font names, all used style's font names have to be correct.
In GDL the font names visible on the Archicad UI can't be used. REQUEST "FONTNAMES_LIST" returns a list of installed fonts. "Arial" can be "Arial Western" or "Arial Central European", etc...
Péter Baksa
Software Engineer, Library
Graphisoft SE, Budapest
Software Engineer, Library
Graphisoft SE, Budapest