Ik heb een keer iets gemaakt om coord met een leader te plaatsen en dit heb ik toen verzonnen:
;;;stel de decimalen in
(setq dm (getint "\nType aantal decimalen : <3>"))
(if dm "" (setq dm 3))
...
...
;;;De tekst wordt geformateerd naar x dec. achter de comma/punt
(setq str "\nWaarde omgevormd naar: ")
(setq X4 (rtos X3 2 dm))
(princ (strcat str X4))
HofCAD,
De tekeningen waar ik mee bezig ben zijn persleidingen voor riolering.
De tekeningen zijn getekend in rijks-coordinaten op een schaal van 1 unit = 1 meter.
IK teken nooit op een miljardste millimeter nauwkeurig.
Jouw topic heb ik inderdaad al gelezen voordat ik deze vraag op de site zette.
Hier zie je een deel van de lijst gemaakt met list commando:
- at point X=198770.78 Y=372076.70 Z= 0.00
at point X=198770.84 Y=372079.02 Z= 0.00
at point X=198770.93 Y=372082.01 Z= 0.00
at point X=198770.99 Y=372084.05 Z= 0.00
at point X=198771.04 Y=372086.00 Z= 0.00
at point X=198771.08 Y=372087.29 Z= 0.00
at point X=198771.51 Y=372102.14 Z= 0.00
at point X=198772.35 Y=372126.98 Z= 0.00
en hier een lijst gemaakt met bovengenoemde routine:
(10 198619.0 372021.0)
(10 198642.0 372030.0)
(10 198665.0 372038.0)
(10 198688.0 372046.0)
(10 198711.0 372055.0)
(10 198735.0 372064.0)
(10 198758.0 372072.0)
(10 198771.0 372077.0)
Dus, al gebruik ik jouw routine dan nog begint hij met de verkeerde waarde.
Of zie ik dit totaal verkeerd?
Even voor de duidelijkheid: dit is tot nu toe alleen in deze tekening (ik moet er nog ongeveer 200 doen).
Eeen lijst gemaakt met mijn routine van een andere tekening zie je hier:
- (10 6526.18 234.6)
(10 6529.87 234.698)
(10 6573.07 236.713)
(10 6603.04 236.8 )
(10 6630.33 236.9)
(10 6679.83 237.1)
Citaat van: Joop op di 01 07 2008, 09:27:48
HofCAD,
De tekeningen waar ik mee bezig ben zijn persleidingen voor riolering.
De tekeningen zijn getekend in rijks-coordinaten op een schaal van 1 unit = 1 meter.
IK teken nooit op een miljardste millimeter nauwkeurig.
Beste Joop,
Sorry, maar ik kan met mijn blonde kopje zelf niet bepalen met welke nauwkeurigheid
AutoCAD tekent (LUPREC is alleen weergaveprecisie).
AutoCAD kan volgens mij niet bepalen of de ingevoerde waarden wiskundig exact zijn of
afgeronde maten zijn, en rekent daarom alles uit met een zelfde vastgelegde
nauwkeurigheid.
De gewenste nauwkeurigheid van een tekenaar is een andere nauwkeurigheid die AutoCAD
wenst, omdat de nauwkeurigheid van belang is om te bepalen of iets bijv sluitend
of bijv tangentieel is zowel bij een tekening van het universum of bij een tekening van een
microchip; hierbij weet AutoCAD namelijk niet of je tekeneenheid een kilometer of een nanometer is.
Ik laad eerst de volgende procedure:
(defun MakeXYZList2 ()
(setq ~zin (getvar "DIMZIN"))
(setvar "DIMZIN" 0)(setvar "UNITMODE" 0)
(setq PlineData (entget (car (nentsel))))
(setq vertex 0)
(foreach Item PlineData
(if (= (car item) 10)
(progn
(setq vertex (1+ vertex))
(princ (strcat "\n(princ item) bij vertex " (itoa Vertex) " geeft:\n"))
(princ item)
(setvar "DIMZIN" 0)
(princ (strcat "\n(princ (strcat \"(10 \" (rtos (cadr item) 2 14) \" \" (rtos (caddr item) 2 14) \")\"))"
" bij vertex " (itoa Vertex) " geeft met Dimzin op 0:\n"))
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14) ")"))
(setvar "DIMZIN" 12)
(princ (strcat "\n(princ (strcat \"(10 \" (rtos (cadr item) 2 14) \" \" (rtos (caddr item) 2 14) \")\"))"
" bij vertex " (itoa Vertex) " geeft met Dimzin op 12:\n"))
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14) ")"))
(setvar "DIMZIN" 12)
(princ (strcat "\n(princ (strcat \"(10 \" (rtos (cadr item) 2 2) \" \" (rtos (caddr item) 2 2) \")\"))"
" bij vertex " (itoa Vertex) " geeft met Dimzin op 12:\n"))
(princ (strcat "(10 " (rtos (cadr item) 2 2) " " (rtos (caddr item) 2 2) ")"))
(princ "\n")
)
)
)
(setvar "DIMZIN" ~zin)
)
Daarna maak ik eerst je polylijn met:
(command "_PLINE" '(198770.78 372076.70 0.00) '(198770.84 372079.02 0.00) '(198770.93 372082.01 0.00)
'(198770.99 372084.05 0.00) '(198771.04 372086.00 0.00) '(198771.08 372087.29 0.00) '(198771.51 372102.14 0.00)
'(198772.35 372126.98 0.00) "")
Dan geef ik in:
(MakeXYZList2)
Select object: ;ik selecteer nu de polylijn en ik krijg het volgende:
(princ item) bij vertex 1 geeft:
(10 198771.0 372077.0)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 1 geeft met Dimzin op 0:
(10 198770.7800000000 372076.7000000000)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 1 geeft met Dimzin op 12:
(10 198770.78 372076.7)
(princ (strcat "(10 " (rtos (cadr item) 2 2) " " (rtos (caddr item) 2 2) ")"))
bij vertex 1 geeft met Dimzin op 12:
(10 198770.78 372076.7)
(princ item) bij vertex 2 geeft:
(10 198771.0 372079.0)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 2 geeft met Dimzin op 0:
(10 198770.8400000000 372079.0200000001); zeer raar
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 2 geeft met Dimzin op 12:
(10 198770.84 372079.0200000001) ; zeer raar
(princ (strcat "(10 " (rtos (cadr item) 2 2) " " (rtos (caddr item) 2 2) ")"))
bij vertex 2 geeft met Dimzin op 12:
(10 198770.84 372079.02)
(princ item) bij vertex 3 geeft:
(10 198771.0 372082.0)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 3 geeft met Dimzin op 0:
(10 198770.9300000000 372082.0100000000)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 3 geeft met Dimzin op 12:
(10 198770.93 372082.01)
(princ (strcat "(10 " (rtos (cadr item) 2 2) " " (rtos (caddr item) 2 2) ")"))
bij vertex 3 geeft met Dimzin op 12:
(10 198770.93 372082.01)
(princ item) bij vertex 4 geeft:
(10 198771.0 372084.0)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 4 geeft met Dimzin op 0:
(10 198770.9900000000 372084.0500000000)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 4 geeft met Dimzin op 12:
(10 198770.99 372084.05)
(princ (strcat "(10 " (rtos (cadr item) 2 2) " " (rtos (caddr item) 2 2) ")"))
bij vertex 4 geeft met Dimzin op 12:
(10 198770.99 372084.05)
(princ item) bij vertex 5 geeft:
(10 198771.0 372086.0)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 5 geeft met Dimzin op 0:
(10 198771.0400000000 372086.0000000000)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 5 geeft met Dimzin op 12:
(10 198771.04 372086)
(princ (strcat "(10 " (rtos (cadr item) 2 2) " " (rtos (caddr item) 2 2) ")"))
bij vertex 5 geeft met Dimzin op 12:
(10 198771.04 372086)
(princ item) bij vertex 6 geeft:
(10 198771.0 372087.0)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 6 geeft met Dimzin op 0:
(10 198771.0800000000 372087.2900000000)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 6 geeft met Dimzin op 12:
(10 198771.08 372087.29)
(princ (strcat "(10 " (rtos (cadr item) 2 2) " " (rtos (caddr item) 2 2) ")"))
bij vertex 6 geeft met Dimzin op 12:
(10 198771.08 372087.29)
(princ item) bij vertex 7 geeft:
(10 198772.0 372102.0)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 7 geeft met Dimzin op 0:
(10 198771.5100000000 372102.1400000000)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 7 geeft met Dimzin op 12:
(10 198771.51 372102.14)
(princ (strcat "(10 " (rtos (cadr item) 2 2) " " (rtos (caddr item) 2 2) ")"))
bij vertex 7 geeft met Dimzin op 12:
(10 198771.51 372102.14)
(princ item) bij vertex 8 geeft:
(10 198772.0 372127.0)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 8 geeft met Dimzin op 0:
(10 198772.3500000000 372126.9800000000)
(princ (strcat "(10 " (rtos (cadr item) 2 14) " " (rtos (caddr item) 2 14)
")")) bij vertex 8 geeft met Dimzin op 12:
(10 198772.35 372126.98)
(princ (strcat "(10 " (rtos (cadr item) 2 2) " " (rtos (caddr item) 2 2) ")"))
bij vertex 8 geeft met Dimzin op 12:
(10 198772.35 372126.98)
12
De conclusie is: Dat de originele waarden terug te krijgen zijn, maar met
(princ item)
verkeerd worden weergegeven.
Alleen bij vertex 2 wijkt de tiende decimaal af.
Met vriendelijke groet, HofCAD CSI
HofCAD bedankt.
Komende maandag zit ik weer bij Waterschapsbedrijf Limburg en kan ik weer verder met de betreffende tekening.
Ik laat je het resultaat weten.
Joop
Bedankt, HofCAD.
Het resultaat is inderdaad bevredigend, waaruit dua maar weer blijkt dat blondje niet synonym is aan dummy.
Maar de vraag blijft: Waarom krijg ik, in deze tekening, bij list waarden afgerond op 1 cijfer achter de komma en is dat altijd nul :vraagteken: