The Global Archicad Community

Stay informed. Get help. Share your knowledge.

Modeling and drafting in Archicad. (Example: How can I model a Roof soffit/fascia?)

Moderators: Karl Ottenstein, LaszloNagy, ejrolon, Barry Kelly, Gordana Radonic, nbalogh, mnguyen, gkmethy

#321319
Hello, I am making a feature wall with thousands of ancient Chinese symbols which is in CAD format, any quick way to convert them to line or 3D text in AC? (I tried explode but not working),

Thanks
Attachments
屏幕截图 2021-01-19 202941.jpg
屏幕截图 2021-01-19 202941.jpg (96.76 KiB) Viewed 198 times
屏幕截图 2021-01-19 204520.jpg
屏幕截图 2021-01-19 204520.jpg (129.71 KiB) Viewed 198 times
#321322
Sadly there is no way to do that. I also sometimes wanted to have this feature.

One option would be to use the text library object, but this is possibly a bit too cumbersome for you, since you would need to enter all text again.

Maybe there is an DWG import option do explode text - otherwise do it in Illustrator, which can read DWG files, too.
#321329
I don't know a straightforward workflow for that either. But I have done it a couple of times though.

Print a pdf, use some capable enough graphics program to open that pdf - then convert text to paths, then save as pdf. Illustrator, Affinity Designer, InkScape or some other programs or dedicated converters will do.

AC: import pdf, explode pdf to fills, make complex profiles out of fills or use magic wand to make slabs if appropriate. Use complex profiles and/or slabs as needed. You can try copy-pasting between programs too, that might come out as pasted fills outright miraculously in archiCAD - but not necessarily.

It will be a tedious task though. And this approach might give you a pretty complex and big file eventually.

Maybe you'd be better off with printing it in multiple parts to pdf's and working that way, I don't know.
#321439
I have no clue about Chinese letters but i think its possible in an relatively easy way through scripting:




https://www.dropbox.com/s/4zlzc88mjub6s ... n.pln?dl=0


in GDL (scripting language in Archicad) it is possible to extract single letters from a text-string. If you script a loop with geometrical steps, you can situate the single letters at any geometrical path-points within the library-object in 2D and also extracted in 3D.

In the Masterscript, You could extract the single letters this way:
Code: Select all
! Textstile festlegen:

DEFINE STYLE Stil2D "fontType", TextGr, 7, 1

DEFINE STYLE Stil3D "fontType", TextGr*100, 7, 1  !*100= scale-factor in 2D)








!!!! String zerlegen und einzeln an einen Array übergeben:

!Länge:

Anzahl = STRLEN (Buchtabenfolge)



!! Zerlegung:  (STRSUB (string_expression, start_position, characters_number))

Dim Buchstaben[]

for i = 1 to Anzahl


	Buchstaben[i] = STRSUB (Buchtabenfolge, i, 1)


next i





in the 2D-Script it could looke like this:

Code: Select all
!!! Buchstabenfolge aus Masterscript einsetzen:

hotspot2 0,0
STYLE Stil2D



if Art = "gerade" then
		
		for i = 1 to Anzahl
		
		
			Text2 0, 0, Buchstaben[i]
			hotspot2 0,0
		
			add2 a/10, 0
		
		next i
		
		del Anzahl
	
	else
endif




if Art = "Kreis" then

	Umfang = A*2*Pi
	Einzelwinkel = 360 / Anzahl

	rot2 Einzelwinkel
		for i = 1 to Anzahl
		

			rot2 -Einzelwinkel*i
			add2 a, 0	
		
				Text2 0, 0, Buchstaben[i]
				hotspot2 0,0

			del 2

		
		next i
		
		del Anzahl*2
	
	else

endif




if Art = "Bogen" then



	Einzelwinkel = Bogenwinkel / Anzahl


	rot2 Einzelwinkel
		for i = 1 to Anzahl
		

			rot2 -Einzelwinkel*i
			add2 a, 0	
		
				Text2 0, 0, Buchstaben[i]
				hotspot2 0,0

			del 2

		
		next i
		
		del Anzahl*2
	
	else

endif

In the parameter-Script this line is needet:
Code: Select all
values "Art" "gerade", "Kreis", "Bogen"
And in the parameterlist, all the needet parameters schould be present.


As i showed in 2D - it would be possible in 3D too... something like this:
Code: Select all
hotspot2 0,0
STYLE Stil3D



if Art = "gerade" then
		
		for i = 1 to Anzahl
		
		
				Text 0.05, 0, Buchstaben[i]
			hotspot 0,0,0
		
			addx a/Anzahl
		
		next i
		
		del Anzahl
	
	else
endif




if Art = "Kreis" then

	Umfang = A*2*Pi
	Einzelwinkel = 360 / Anzahl

	rotz Einzelwinkel
		for i = 1 to Anzahl
		

			rotz -Einzelwinkel*i
			addx a
		
				Text 0.05, 0, Buchstaben[i]
				hotspot 0,0,0

			del 2

		
		next i
		
		del Anzahl*2
	
	else

endif




if Art = "Bogen" then



	Einzelwinkel = Bogenwinkel / Anzahl


	rotz Einzelwinkel
		for i = 1 to Anzahl
		

			rotz -Einzelwinkel*i
			addx a	
		
				Text 0.05, 0, Buchstaben[i]
				hotspot 0,0,0

			del 2

		
		next i
		
		del Anzahl*2
	
	else

endif