Hallo allemaal,
ik krijg twee getallen terug uit mijn script, een lengte en een breedte, deze wil ik graag als een tekst vermelden op m'n tekening. Nu krijg ik echter getallen met een stuk of 10 decimalen achter de komma. Als dit 1 decimaal zou zijn, zou dit voldoende zijn. Ik dacht er aan om met de functie round aan de gang te gaan, maar ik kom er niet uit.
Ik weet wel dat het hiermee niet goed wordt afgerond, maar het zijn ruwe maten, dus dit is niet heel erg.
Kan iemand mij verder helpen?? hieronder zoals het script nu is zonder afronding.
Dim newTextStyle As AcadTextStyle
Dim txtafmeting As AcadMText
Dim corner(0 To 2) As Double
Dim strText As String
Dim width As Double
Dim laag_CNC_info As AcadLayer
Dim dblLengtemaat As Double
Dim dblBreedtemaat As Double
dblLengtemaat = dbllengte + 20 is de waarde uit het voorgaande script
dblBreedtemaat = dblBreedte + 20 is de waarde uit het voorgaande script
'maakt een nieuwe gele laag aan
Set laag_CNC_info = ThisDrawing.Layers.Add("CNC_info")
laag_CNC_info.color = acYellow
'plaatst de tekst op de tekening
Set newTextStyle = ThisDrawing.TextStyles.Add("25")
ThisDrawing.ActiveTextStyle = newTextStyle
corner(0) = varExtendMin(0): corner(1) = varExtendMin(1) + 25
width = 200
strText = dblLengtemaat & "x" & dblBreedtemaat
Set txtafmeting = ThisDrawing.ModelSpace.AddMText(corner, width, strText)
txtafmeting.Layer = laag_CNC_info.Name
Er zou dan iets met de dblLengtemaat en dblBreedtemaat moeten gebeuren, maar hier kan ik niet echt iets over vinden waar ik iets mee kan doen.
Groetjes Martijn
martijn,
er zijn zoals altijd meerdere opties voor je probleem,
of je rond het af als het een getal is, of je rond het af als een string,
als string is het makkelijkst.
je pakt de linkerkant van de string met de lengte van het getal waar de komma staat +1 voor 1 achter de komma
strText = vba.left(dblLengtemaat,vba.instr(1,dblLengtemaat,",")+1) & "x" & vba.left(dblbreedtemaat,vba.instr(1,dblbreedtemaat,",")+1)
zoiets, uit het hoofd.
gr. ivo