Choose your top Archicad wishes!

Read more
GDL
About building parametric objects with GDL.

Can I remove the outline of 3D text in my object?

JGoode
Advocate

As the title says, is it possible to remove the outline around 3D text in the object? I'm trying to add a toggle to be able to show / hide the outline.

 

Thanks

ArchiCAD 23

Windows 10
6 REPLIES 6
maurice100
Contributor

Not a direct answer. Convert the object to mesh morph and play with the Edge settings  eg Hidden or soft.

You could have two separate layers to show the hard lines or no outline

Archicad R27

Mac Book Pro 16" Apple Silcone
Barry Kelly
Moderator

You mention adding a toggle, so I have moved the post to the GDL forum.

The 3D text object that comes default in the Graphisoft library just uses a 'TEXT' command in the 3D script.

So you can't turn the outline off.

You can however add a PEN command and set a very thin white pen (can't be pen 0 or -1).

 

You have labelled the post '3rd Party Objects'.

If it is a third party object, it may be scripted differently - but I doubt it, as I don't think there is an easy way to convert TEXT into a PRISM_.

 

Barry.

 

One of the forum moderators.
Versions 6.5 to 27
Dell XPS- i7-6700 @ 3.4Ghz, 16GB ram, GeForce GTX 960 (2GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11

Magic, Alchemy and Incantations are required, when the moon is full and the wind is blowing from.....

or

PLACEGROUP ISECTGROUP{3}(Oversized_Block_Text_Is_Cut_From_Group, Text_Block_Group, 0, 0, 0, 1)

 

A thin white line becomes a wider white line in a pdf, so i don't use the white line trick.

 

ISECTGROUP
ISECTGROUP (g_expr1, g_expr2)

ISECTGROUP{2} (g_expr1, g_expr2, edgeColor, materialId, materialColor [, operationStatus])

ISECTGROUP{3} (g_expr1, g_expr2, edgeColor, materialId, materialColor [, operationStatus])
g_expr1: identifier of the base group.
g_expr2: identifier of the tool group.
edgeColor: the color of the new edge when it differs from 0.
materialId: the material of the new face when it differs from 0.
materialColor: the color of the new face when the materialId is 0 and it differs from 0.
operationStatus: status control of the operation.
operationStatus = j1, where each j can be 0 or 1.
j1: generated new edges will be invisible.

 

AllanP_0-1715306322254.png

 

 

Example....

ThreeDeeText = "PLACE TEXT HERE"

GROUP "Oversized_Block_Text_Is_Cut_From_Group"
   material "BLACK"
   ADD -1.500,-0.00500,-0.100
   BLOCK 3.000,0.00399,0.200
   DEL 1
ENDGROUP

GROUP "Text_Block_Group"
   material "BLACK"
   pen 1
   MODEL SOLID
   rotx 90
   text 0.002,0,ThreeDeeText
   del 1
ENDGROUP

PLACEGROUP ISECTGROUP{3}("Oversized_Block_Text_Is_Cut_From_Group", "Text_Block_Group", 0, 0, 0, 1)

 

 

I have been using ArchiCAD continually since ArchiCAD 4.5, 4.5.5, 5, 5.1, 6, 6.5, 7, 8, 8.1, 9, 10, 11, 12, 13, 15, 18, 21, 22, 25, now testing 27
Member of Architalk since 2003, but missed the migration to Graphisoft.
(where have all my original posts gone?)

The old "Intersect the text from an oversized block" trick!

I like it. 😄

 

So the new code for the default 3D text object is ...

 

GROUP "Oversized_Block_Text_Is_Cut_From_Group"
	ADD -txt_len, -Elev_Txt_size, -txt_thk
	BLOCK txt_len*2,Elev_Txt_size*2,txt_thk*3
	DEL 1
ENDGROUP
!PLACEGROUP "Oversized_Block_Text_Is_Cut_From_Group"

GROUP "Text_Block_Group"
	Text txt_thk,0,Elev_Txt_Str
ENDGROUP
!PLACEGROUP "Text_Block_Group"

!! Text !!
Material Elev_Txt_Mat
add 0,0,Elev_Txt_Hgt+Elev_Txt_size*0.5
ROTy -incl_txt
ROTx 90-roll_text
if SYMB_MIRRORED=1 then
	mulx -1
endif
pen 1

PLACEGROUP ISECTGROUP{3}("Oversized_Block_Text_Is_Cut_From_Group", "Text_Block_Group", 0, 0, 0, 1)

del 1
del 1
del 1

 

It is a shame you can't just intersect the text with itself - that doesn't seem to work.

You must have something slightly bigger to intersect with the text.

 

Barry.

One of the forum moderators.
Versions 6.5 to 27
Dell XPS- i7-6700 @ 3.4Ghz, 16GB ram, GeForce GTX 960 (2GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Pertti Paasky
Expert

Hello JGoode.

Make a group "TEXT 3D"  and then place it using  CREATEGROUPWITHMATERIAL .

 

group "TEXT 3D" 

_ _ _ _ 

endgroup

 

 

j1=0 ! replace pen,
j2=0 ! replace material,
j4=1 ! make edges invisible.
pen_=2 ! replacement pen index.
material_=0 ! replacement material index.
repl_directive = j1 + 2*j2 + 4*j3 + 8*j4
placegroup CREATEGROUPWITHMATERIAL ("TEXT 3D" , repl_directive, pen_, material_)

- AC-24 FIN - WIN 10 - HP Zbook -
“A winner is just a loser who tried one more time.”
George M. Moore, Jr.

@Pertti Paasky wrote:

Make a group "TEXT 3D"  and then place it using  CREATEGROUPWITHMATERIAL .


That is even easier.

I really should read through the reference manual again - I totally missed that one.

 

For those following along, the 3D text code can now be ...

 

GROUP "Text_Block_Group"
	Text txt_thk,0,Elev_Txt_Str
ENDGROUP
!PLACEGROUP "Text_Block_Group"

!! Text !!
Material Elev_Txt_Mat
add 0,0,Elev_Txt_Hgt+Elev_Txt_size*0.5
ROTy -incl_txt
ROTx 90-roll_text
if SYMB_MIRRORED=1 then
	mulx -1
endif
pen 1

PLACEGROUP CREATEGROUPWITHMATERIAL ("Text_Block_Group", 1*0 + 2*0 + 4*0 + 8*1, pen_numb, material_index)

del 1
del 1
del 1

 

You could even add a parameter now to turn the invisible edges masking value on or off, which is exactly what JGoode wants.

 

Barry.

One of the forum moderators.
Versions 6.5 to 27
Dell XPS- i7-6700 @ 3.4Ghz, 16GB ram, GeForce GTX 960 (2GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11

Didn't find the answer?

Check other topics in this Forum

Back to Forum

Read the latest accepted solutions!

Accepted Solutions

Start a new conversation!