西班牙
斯潘4
您好!@雷蒙德,
我认为您的方法是完美的:首先用vertecreator创建一个点,然后用LabelPointReplacer替换为一个文本,这绝对是有意义的。如果此文本功能立即写入DGN,则它将具有默认的LB(左下)对正方式。所以下一步是设置正确的文本对齐方式。您是对的,这可以使用format属性来完成,但是正确的属性是igds_理由igds_original_justification不是igds_original_justification(igds_original_justification是读卡器读取的属性,用于指示将文本放置在MicroStation中时使用了什么对齐方式,而编写器不使用此属性)。尽管,作为手动设置igds_justification值的替代方法,我还是建议使用DGNStyler:
输出文本功能可能仍会出现轻微偏移。例如。通过附加的工作区,我得到了文本坐标0.0414,0.0000,而不是高度和宽度为10并使用工程字体的文本坐标0.0000,0.0000。这是因为所有字体都有不同的比例,而DGN Writer并没有意识到这一点,即。DGN编写器无法计算文本边框,因此文本中心位置精确-它只能估计。偏移量取决于使用的字体和文本功能的大小-在许多情况下,如果存在的话,偏移量将是最小的。
当使用数据检查器检查输出时,请检查igds_original_justification、igds_insertion_x和igds_insertion_y属性值,因为这些属性描述文本的原始插入点和对正,而其他属性存储为文本边界框的左下角计算的值(即。好像文本有LB对正,这就是MicroS非2dgnv8.fmw工作站处理文本)。
您好!@雷蒙德,
听起来像是个老FME。你使用FME 2014吗?FME 2015 DGNStyler具有文本分组框,其中包含许多与文本样式相关的设置:
你会考虑升级吗?您可以从下载最新安装http://www.亚搏在线safe.com/support/support-resources/fme-downloads/如果你有一个有效的AMC,你的旧执照将工作。如果您的AMC已过期,请通过亚搏在线https://support.亚搏在线safe.com/knowledgeSubmitCase讨论你的选择。
你好。
一使用Boundsexctractor提取文本的边界。
二替换为中心点并提取坐标。
3使用仿射器将中心点移动到所需的LabelinerationPoint。
使用目标-中心-边界的1/2
在affiner中,这将是:
A:1,0,@Value(T_x)-@Value(C_x)-(@Value(xmax)-@Value(xmin))/2
B:@Value(T_y)-@Value(C_y)-(@Value(@ymax)-@Value(@ymin))/2
4对文本属性使用labelpointreplacer。
前一个进程包含文本,但它在“fme_text_string”中。使用attributeexposer并在使用仿射器之前公开它。
我一直认为格式属性在这方面应该是有用的,但以前从未使用过dgn编写器。
?2019安全亚搏在线软件公司|合法的