CADsite forum

AutoCAD => VBA => Topic gestart door: martijn op wo 22 04 2009, 12:16:27

Titel: Getallen afronden met round??
Bericht door: martijn op wo 22 04 2009, 12:16:27
 
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
Titel: Re:Getallen afronden met round??
Bericht door: skyhunter op wo 13 05 2009, 19:08:41
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