SaliKatt 发表于 2022-7-6 09:52:51

挤压方向z=-1(在P上)

您好,我有几个具有多段线对象的dwg文件,在使用list命令时具有以下语句:
“相对于UCS的拉伸方向:X=0.00 Y=0.00 Z=-1.00”
线属性中的高程为0。
 
我在另一个软件中使用dwg文件作为背景,不幸的是,它没有显示值为-1的线。
 
我正在使用mirror3d(object)命令在ACAD中手动执行,有没有办法使用VBA找到所有这些多段线。我试图搜索多段线的属性,但找不到任何拉伸方向。

kduck63 发表于 2022-7-6 10:07:48

听起来像是你在沿着直线本身的轴看直线。如果将UCS绕X或Y轴旋转90度,您将看到直线的真实长度。

SaliKatt 发表于 2022-7-6 10:17:02

Thx回复,
 
但是UCS的更改不会更改list命令的结果。在UCS=world中,该线在ACAD中正确显示。
 
我举了一个例子。
 
-吉隆坡
图纸1.dwg

SEANT 发表于 2022-7-6 10:20:42

拉伸方向与法线方向相同。因此,如果使用VBA,则:
 
varNormal=entLWPoly。典型的
如果varNormal(2)=-1,则

 
如果要从Autocad屏幕中查找它们,则如下所示设置的过滤器将自动选择法线未与正Z轴对齐的所有多段线。

kduck63 发表于 2022-7-6 10:27:49

您可以通过创建bpoly、region或UCS、NEW对象来消除z=-1。

SaliKatt 发表于 2022-7-6 10:39:45

肖恩,
谢谢,我不知道filter命令。功能真不错。但是我不能用-1作为Z值的过滤器,但我用not绕过了它。
VBA还可以获取选择集中的所有相关对象。现在只需使用mirror3d函数(在VBA中)进行一些操作,我就可以正确地使用它。
 
Kduk63,
是的,当我玩UCS时,我消除了z=-1的值,但由于外部软件正在读取WCS,它并没有真正起到帮助。不过还是要谢谢你。
 
请注意,该文件实际上由microstation保存为dwg,我想这就是为什么我在一些多段线上得到z=-1值的原因。
 
我正处于ACAD中VBA的学习阶段,因此我需要一些帮助,使VBA与mirror3d对象相等(而不是按点)
 
-吉隆坡

SEANT 发表于 2022-7-6 10:46:33

 
我也不能。我也必须这样做,但有!=(不等于)。
 
关于VBA的具体问题通常会很快得到本网站众多VB专家的回答。

macchi 发表于 2022-7-6 10:53:15

我必须在来自microstation/dgn格式的图形中解决这个问题。
很多圆弧和多段线都有这种情况,无法连接。
我用一个简单的Lisp例程解决了这个问题。
 
(defun c:swap()
(setq f1(ssget“_x”'((210 0.0 0.0-1.0)))
(如果(/=f1 nil)
(命令“_mirror3d”f1”““xy”“0,0,0”“y”)
)
(setq f1 nil)
)
 
马可
页: [1]
查看完整版本: 挤压方向z=-1(在P上)