Keith™ 发表于 2007-1-20 14:44:18

需要帮助修剪对象

好的。我试着让我的生活轻松一点,但我发现沿着栅栏修剪物体或可能有栅栏的物体至少有点困难
问题…
使用选定点作为剖切面中心,创建更大平面的剖切面
我可以使用SelectByCrossing并使用由一系列点表示的围栏,但没有有效的方法来修剪围栏外的所有对象。对于直线,我可以单独检查它们,并将端点修改为围栏和直线的交点,但对于圆形和圆弧,我无法更改对象的外观
有什么想法吗
谢谢

Bryco 发表于 2007-1-20 15:58:44

对于圆和省略号,删除它们并绘制圆弧
对于圆弧,更改起点或终点等。因此需要大量重画
块很难,因为没有包装,vba不't不允许接触夹子
但是,您可以使用sendcommand
I'我不完全确定你们想要什么,但在我看来,你们通过做一个更大的计划块,然后使用sendcommand将其剪辑到你们想要的东西,就得到了你们想要的一切

Keith™ 发表于 2007-1-20 16:50:35

不幸的是,这正是我所不知道的;我不想这么做,因为生成的对象经常不'结果与原作不同。似乎Autodesk应该实现某种修剪方法…
我会继续查找。否则,我必须为每个特定的实体类型编写一个对象处理程序。

Keith™ 发表于 2007-1-20 18:04:17

在剪辑边界绘制一条多段线,将其偏移#039;x#039;数量,使用这两条多段线作为修剪边界,然后在0.5x处创建围栏,以修剪跨越这两个边界的所有图元 然后,如果需要'孔#039;或者删除所有不'如果你想'夹子&#039
它可能不适用于每一个实体,但应该得到其中的大部分 您必须至少缩放到最大边界的范围,因为如果我没记错的话,修剪似乎只适用于屏幕上可见的对象。

MickD 发表于 2007-1-20 18:07:04

VBA没有修剪方法。我必须使用;发送命令“;这简直太难看了。

Bryco 发表于 2007-1-20 20:00:05

以前有一个express工具(在modify下,但我现在想不起它的名字),但上次我在2006年找它时,我没有;我找不到,但听起来像是你需要的工具。我过去经常在2d作品中使用它,用圆圈放大细节
它可能仍在某个隐藏的地方,值得一看。

Keith™ 发表于 2007-1-20 21:28:35

使用要修剪的线、拾取的点和isleft函数来确定哪一侧是保持器和循环。与(oLine,acExtendNone)相交,困难部分全部完成
Function isLeft(LineStart, LineEnd, pt) As Integer
    Dim Ans As Double
    Ans = ((LineEnd(0) - LineStart(0)) * (pt(1) - LineStart(1)) _
            - (pt(0) - LineStart(0)) * (LineEnd(1) - LineStart(1)))
    Ans = Round(Ans, 12)
    If Ans > 0 Then isLeft = 1: Exit Function'Pt is left of the line(CW)
    If Ans < 0 Then isLeft = -1: Exit Function'Pt is right of the line (CCW)
    If Ans = 0 Then isLeft = 0
End Function

Bryco 发表于 2007-1-21 05:47:41

如果它们穿过围栏,一个圆将成为一条弧,其起点和终点角度与围栏上的交点重合
弧应&#039;t look“;“不同”;因为只有星形缠结或端角会改变。多段线可能是一头猪,看起来你可能需要编写一些包装
顺便说一句,cookie-cuter lisp被称为EXTRIM(快速工具),Dent在不久前发布了一个名为Detail的工具。lsp,但我可以#039;似乎找不到,虽然这是Lisp,但它可能会给你一些想法

Bryco 发表于 2007-1-21 11:22:50

但是我想要VB(A)…因为我将把它编译成一个可执行文件

Tuoni 发表于 2007-1-21 19:56:38

是否有来自VB(A)的getSplitCurves方法
如果是这样的话,定义切割边缘并选择所有要切割的对象就不那么复杂了,那么该方法将根据在该边缘上找到的交点生成新对象,只需删除不需要的断裂部分…don#039;我不知道,这里我展示了在arx中使用该方法完成的命令…http://www.theswamp.org/index.php?topic=10568.msg134894#msg134894
页: [1] 2
查看完整版本: 需要帮助修剪对象