旋转文本
我有一个例程,选择特定层上的所有文本,然后将文本旋转到特定角度。如果我缩小了,这样我可以看到所有的绘图并运行例程,一切都很好。但是,如果我放大图形的一部分,然后运行例程,并不是所有的文本实体都会旋转。可见的和屏幕区域外的旋转。
以前有没有人遇到过这个问题?如果有,有没有解决方法。
我总是可以强制最大化,旋转文本,然后缩放上一个,但它不是很干净。 当我读到这篇文章时,我希望你使用的是旧版本的Acad。多年来发生了变化的一件事是,“L”ast对象过去是当前屏幕上可见的最后一个绘制对象。它现在是最后绘制的对象。这让我有几次被脚本吸引住了,我开始放进“最大化”和“上一个”来确保我得到了我需要的东西。
换句话说,我不知道其他的解决方案,我希望你也能找到我感兴趣的解决方案。 戴夫,
更复杂的是,这是在使用AutoCAD 2009的机器上运行的,而不是在我使用2011的机器上运行的。我会在2011年试着运行它,然后再给你回复。 不,2011年也一样 2009年对我来说是新的一年
你能在选择之前发出一个Regen All吗?(只是猜测) 如何选择选择集?听起来您正在使用以下任一选项:
acSelectionSetWindow
acSelectionSetCrossing
如果是这样,是否需要将选择限制在某个区域(即,是否可以使用过滤后的acSelectionSetAll)? 肖恩,
我使用的是过滤后的acSelectionSetAll。
否选择集不需要限制在某个区域,它必须包含整个图形。 戴夫,
“ThisDrawing.Regen acAllViewPorts”没有改变任何东西。 请在第一篇文章中粘贴相关代码可能会有所帮助。 下面是一段代码:
ThisDrawing.Utility.GetEntity obj, bsPT, "Pick text on text layer to be rotated ..."
Set SelLay = ThisDrawing.Layers.Add(obj.Layer)
SelectedLayer = SelLay.Name
fType(0) = 0
fData(0) = "TEXT"
fType(1) = 8
fData(1) = SelectedLayer
' regen all
ThisDrawing.Regen acAllViewports ' this was for Dave
Set ssText = AddSS("TEXT")
ssText.Select acSelectionSetAll, , , fType, fData
页:
[1]