----------- ~\\|//~ ------------
------------
- -
- -------------
-------ooO---(_)---Ooo-------- [/color]
Beste CADliefhebbers,
Het zal wel uiterst dom zijn :cry: , maar ik kan het aantal decimalen bij de entget functie niet instellen. :roll:
In feite moeten er volgens mij zo'n 14 decimalen zijn, en ik krijg er
maar 5. :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:
VB.
<Entity name: 7ef54d90> ((-1 . <Entity name: 7ef54d90>) (0 . "LINE") (330 .
<Entity name: 7ef54d08>) (5 . "32") (100 . "AcDbEntity") (67 . 0) (410 .
"Model") (8 . "0") (100 . "AcDbLine") (10 5.81594 0.769737 0.0) (11 7.45829
2.44455 0.0) (210 0.0 0.0 1.0))
Bij voorbaat mijn dank.
Groetjes HofCAD CSI
Beste HofCAD,
Ik heb die Printdxf bij mij ook eens getest.
Ik krijg soms 6 decimalen en soms minder dan 5. (Zie hieronder)
Volgens mij kiest autocad zelf het aantal decimalen :!:
CiteerCommand: l LINE Specify first point: 0.123456789,50
Specify next point or [Undo]: 50.123456789,50
Specify next point or [Undo]:
Command: PRINTDXF
entget of last entity:
(-1 . <Entity name: 7ef55da0>)
(0 . "LINE")
(330 . <Entity name: 7ef55d18>)
(5 . "34")
(100 . "AcDbEntity")
(67 . 0)
(410 . "Model")
(8 . "0")
(100 . "AcDbLine")
(10 0.123457 50.0 0.0)
(11 50.1235 50.0 0.0)
(210 0.0 0.0 1.0)
PRINTDXF
Citeer(defun C:PRINTDXF ( )
(setq ent (entlast)) ; Set ent to last entity.
(setq entl (entget ent)) ; Set entl to association list of
; last entity.
(setq ct 0) ; Set ct (a counter) to 0.
(textpage) ; Switch to the text screen.
(princ "\nentget of last entity:")
(repeat (length entl) ; Repeat for number of members in list:
(print (nth ct entl)) ; Print a newline, then each list
; member.
(setq ct (1+ ct)) ; Increments the counter by one.
)
(princ) ; Exit quietly.
)
ik denk dat de uitvoer gebonden is aan een bepaalde veldlengte
Als je hele kleine getallen invoerd (0,000000000001235,1) als punt bijvoorbeeld gaat hij over op wetenschappelijke notatie
het zelfde geld voor hele grote getallen
verder worden er geen extra nullen gebruikt
er komt dus niet 0,0100 te staan of zo
dus bij een test moet je de exacte lokatie nummeriek invoeren
je beeldscherm heeft namelijk maar een beperkt aantal punten
en deze zorgen volgens mij voor een bepaalde nauwkeurigheid bij een muisklik. (afhankelijk van hoe groot het deel van je tekening is dat op het scherm zichtbaar is natuurlijk)
Citaat van: bartik denk dat de uitvoer gebonden is aan een bepaalde veldlengte
----------- ~\\|//~ ------------
------------ - -
- -------------
-------ooO---(_)---Ooo--------
[/color]
Beste CADliefhebbers,
Graag wil ik jullie bedanken voor jullie reacties.
Stel ik doe het volgende:
LUPREC 8
LINE 20/3,40/3 @100/6,200/7 <enter>
ID @
Geeft: X = 23.33333333 Y = 41.90476190 Z = 0.00000000
(- (cadr (getvar "LASTPOINT")) 41.90476190)
Geeft: 4.76191e-009
(wat ook zo hoort, want
40/3+200/7= 41,904761904761904761904761904762)
(setq e1 (entlast))
(setq ed (entget e1))
Geeft:((-1 . <Entity name: 400f4e28>) (0 . "LINE")
(330 . <Entity name: 400f4cf8>) (5 . "6D") (100 . "AcDbEntity")
(67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine")
(10 6.66667 13.3333 0.0) (11 23.3333 41.9048 0.0)
(210 0.0 0.0 1.0))
(setq pe (nth 10 ed))
Geeft: (11 23.3333 41.9048 0.0)
(caddr pe)
Geeft: 41.9048 (Let op deze waarde)
(- (caddr pe) 41.90476190)
Geeft: 4.76191e-009
De variabele ed bevat dus de Database opslag van de lijn.
Als ik de Y-waarde naar Excel schrijf, krijg ik dus de rode waarde
(41.9048) en nooit een nauwkeuriger waarde
(in de buurt van 41.904761904761904761904761904762).
Terwijl in de Database een nauwkeuriger waarde staat. :oops:
Dat is toch vreemd.!!!!!!!!!!!!!!! :roll:
Groetjes HofCAD CSI
PS Dit probleem is bij mij opgekomen, door het AutoLisp programma
HofREC om o.a. breedte en hoogte van rechthoeken naar Excel te
exporteren.
Voor HofREC: http://www.savefile.com/files/7375161
moet je eens kijken wat je krijgt als je een punt als
128783214171263474998798798,1,0 gebruikt
(zonder cijfers achter de komma dus)
dan is de absolute onnauwkeurigheid nog veel groter.
Citaat van: bartmoet je eens kijken wat je krijgt als je een punt als
128783214171263474998798798,1,0 gebruikt
(zonder cijfers achter de komma dus)
dan is de absolute onnauwkeurigheid nog veel groter.
----------- ~\\|//~ ------------
------------ - -
- -------------
-------ooO---(_)---Ooo-------- [/color]
Beste Bart,
Dit vind ik nog al mee vallen, maar ik gebruik voor mijn gemak
wel een gemakkelijker getal.
Het getal is van dezelfde grootte order, en dan zal het in principe
niets moeten uitmaken.
LINE 0,0 123456789012345678901234567,1,0 <enter>
(setq e1 (entlast))
(setq ed (entget e1))
Geeft: ((-1 . <Entity name: 4005ed60>) (0 . "LINE")
(330 . <Entity name: 4005ecf8>) (5 . "2C") (100 . "AcDbEntity") (67 . 0)
(410 . "Model") (8 . "0") (100 . "AcDbLine") (10 0.0 0.0 0.0)
(11 1.23457e+026 1.0 0.0) (210 0.0 0.0 1.0))
(setq pe (nth 10 ed))
Geeft: (11 1.23457e+026 1.0 0.0)
(cadr pe)
Geeft: 1.23457e+026
(- (cadr pe) 1.23456e+026)
Geeft: 7.89012e+020
(- (- (cadr pe) 1.23456e+026) 7.89012e+020)
Geeft: 3.45682e+014
(- (- (- (cadr pe) 1.23456e+026) 7.89012e+020) 3.4567e+014)
Geeft: 1.20449e+010
of
(- (cadr pe) 123456789012345600000000000)
Geeft: 8.58993e+010
(- (cadr pe) 123456789012345670000000000)
Geeft: 0.0
Deze nauwkeurigheid van 16 cijfers is wat ik verwacht, maar waarom
kan ik het getal niet met die nauwkeurigheid naar een XLS Excel bestand
schrijven.
Groetjes HofCAD CSI
het is maar hoe je het bekijkt.
ik gaf ook al aan dat het absolute onnauwkeurigheid betreft
Citaat van: HofCADDeze nauwkeurigheid van 16 cijfers is wat ik verwacht, maar waarom
kan ik het getal niet met die nauwkeurigheid naar een XLS Excel bestand
schrijven.
----------- ~\\|//~ ------------
------------ - -
- -------------
-------ooO---(_)---Ooo-------- [/color]
Beste CADliefhebbers,
Sorry, Sorry, Sorry en nog maals Sorry. :oops: :oops: :oops:
Natuurlijk had ik in mijn programma HofREC voor meer decimalen
(rtos PX 1 14) enz. moeten gebruiken.
(mapcar '(lambda (x) (princ X filedes))
(list naam
"\t"
(rtos px 1 14)
"\t"
(rtos py 1 14)
"\t"
(rtos px 1 14)
"\t"
(rtos b 1 14)
"\t"
(rtos h 1 14)
"\t"
opp
"\t"
chg
"\n"
)
)
Maar ja, jullie weten het onderhand, ik ben blond. :oops:
Groetjes HofCAD CSI