乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 239|回复: 14

需要帮助修剪对象

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

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

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

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

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-1-20 16:50:35 | 显示全部楼层
不幸的是,这正是我所不知道的;我不想这么做,因为生成的对象经常不'结果与原作不同。似乎Autodesk应该实现某种修剪方法…
我会继续查找。否则,我必须为每个特定的实体类型编写一个对象处理程序。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

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

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2007-1-20 18:07:04 | 显示全部楼层
VBA没有修剪方法。我必须使用;发送命令“;这简直太难看了。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-20 20:00:05 | 显示全部楼层
以前有一个express工具(在modify下,但我现在想不起它的名字),但上次我在2006年找它时,我没有;我找不到,但听起来像是你需要的工具。我过去经常在2d作品中使用它,用圆圈放大细节
它可能仍在某个隐藏的地方,值得一看。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-1-20 21:28:35 | 显示全部楼层
使用要修剪的线、拾取的点和isleft函数来确定哪一侧是保持器和循环。与(oLine,acExtendNone)相交,困难部分全部完成
  1. Function isLeft(LineStart, LineEnd, pt) As Integer
  2.     Dim Ans As Double
  3.     Ans = ((LineEnd(0) - LineStart(0)) * (pt(1) - LineStart(1)) _
  4.             - (pt(0) - LineStart(0)) * (LineEnd(1) - LineStart(1)))
  5.     Ans = Round(Ans, 12)
  6.     If Ans > 0 Then isLeft = 1: Exit Function  'Pt is left of the line  (CW)
  7.     If Ans < 0 Then isLeft = -1: Exit Function  'Pt is right of the line (CCW)
  8.     If Ans = 0 Then isLeft = 0
  9. End Function

回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

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

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-21 11:22:50 | 显示全部楼层
但是我想要VB(A)…因为我将把它编译成一个可执行文件
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2007-1-21 19:56:38 | 显示全部楼层
是否有来自VB(A)的getSplitCurves方法
如果是这样的话,定义切割边缘并选择所有要切割的对象就不那么复杂了,那么该方法将根据在该边缘上找到的交点生成新对象,只需删除不需要的断裂部分…don#039;我不知道,这里我展示了在arx中使用该方法完成的命令…http://www.theswamp.org/index.php?topic=10568.msg134894#msg134894
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-7 10:00 , Processed in 2.299521 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表