![]() |
【转帖】ktextvertmid misrepresented as ktextbase
ktextvertmid misrepresented as ktextbase
ktextvertmid misrepresented as ktextbase i am having trouble deciphering the vertical alignment mode of oddbtext. all modes are fine, except for an ambiguity between the modes 'center' and 'middle'. by playing with the justify parameter of single-line text inside autocad one can see that: mode center means: horizontal center + vertical baseline mode middle means: horizontal center + vertical center if one saves text objects with these two modes to a dwg (2006) and loads them with dd, you will notice that in both cases their oddbtext.verticalmode function returns ktextbase, while one of the two should return ktextvertmid. i investigated the matter further by saving two dxf files, their only difference being the bespoke alignment, and i noticed that the dxfs do not explicitly state the alignment parameters, but rather implicitly specify it by including dxf objects 10,20 and 11,21. obviously i don't know if the same goes for dwg, but if so, then i must assume that the dd inference engine does not properly recognize vmid text alignment. or is this my fault because i fail to supply dd with the font (tahoma.ttf)? as a workaround to this, i detect the mistake by noticing whether the alignmentpoint.y != position.y, but this is nasty. can anybody give me any clarity on this? i have another pressing question, but i'll wait until this is sorted out. thanks, ben text alignment is defined by 2 values: horizontalmode() - sethorizontalmode() and verticalmode - setverticalmode(). they set dxf codes 72 & 73. depending on their combination position, alignment or both points should be set. in horizontal center + vertical baseline case alignment point should be set and position (left + base line) is calculated by dd. to perform calculation correctly dd needs the font. else it will use default font (simplex.shx) in calculations. sergey slezkin |
所有的时间均为北京时间。 现在的时间是 04:32 AM. |