priyanka_mehta 发表于 2022-7-6 10:49:24

以一定角度创建直线

大家好,
 
我的代码几乎完成了,但我在最后被卡住了。我应该指示方向,并且被提供了u和v的值。
使用atan(v/u)得到θ的值。
 
但我猜想的问题是,默认情况下,单位设置为逆时针向东。如果我必须画83°,它看起来像7°。因为它在东部显示0。如果我将单位改为顺时针北向,只有手动绘制时才会有差异,但如果我尝试通过VBA绘制,则不会有差异。
 
是否有一种方法或一些设置,使我可以将0°北顺时针作为默认值
 
请查看附件中的图片。
 
谢谢
普里扬卡

MSasu 发表于 2022-7-6 11:18:37

我认为系统变量ANGBASE(设置为90)和ANGDIR(设置为1)就是您要寻找的。请不要忘记这些都保存在图纸中。
 
当做

priyanka_mehta 发表于 2022-7-6 11:21:03

这没用。我试着把angbase设为0,但还是一样。
对不起,我忘了在我的前一个线程中粘贴代码。代码有问题吗?!
 


Dim Line As AcadLine
Dim r As Double
Dim theta As Double

Pnt = ThisDrawing.Utility.GetPoint(, "select point")
InsertionPoint(0) = Pnt(0)
InsertionPoint(1) = Pnt(1)
InsertionPoint(2) = 0



r = 2      'Suppose r = 2 and theta = 0 radians
theta = 0

polarpnt = ThisDrawing.Utility.PolarPoint(InsertionPoint, theta, r)

Set Line = ThisDrawing.ModelSpace.AddLine(InsertionPoint, polarpnt)

Dim pText As AcadText
   degree = (theta * 180) / 3.14
Set pText = ThisDrawing.ModelSpace.AddText(degree, (Line.EndPoint), 0.3)

MSasu 发表于 2022-7-6 11:45:30

由于您希望北方为0角度,因此应将ANGBASE设置为90,而不是0。我认为以下示例是您需要使用的:
 
ThisDrawing.SetVariable "ANGBASE", 90
ThisDrawing.SetVariable "ANGDIR", 1
 
请注意,VBA/有一个单独的子论坛。Net解决方案。
 
当做

priyanka_mehta 发表于 2022-7-6 11:55:12

还是没有运气。。即使包括上述代码,当θ=0时,它仍在以90°北创建直线。我还需要添加更多的代码行吗。
当我手动更改绘图单位角度并使用类似@10的命令手动创建一条线时
页: [1]
查看完整版本: 以一定角度创建直线