therock005 发表于 2022-7-6 11:18:27

广场竣工

我正在寻找一个简单的例程,完成一个给定3点的正方形。
 
唯一的条件当然是相对的边长度相等且平行。

lpseifert 发表于 2022-7-6 11:24:03

这三个点与正方形有什么关系?角?
根据定义,正方形有4条等长边和4个90度的内角。如果得到3分,这可能是不可能的。
如果你举个例子,可能会更清楚。

therock005 发表于 2022-7-6 11:25:25

对不起,我不是说一个四边和直角都相等的完美正方形。我指的是一个四边形,两边相等且平行(无论角度如何)。
 
编辑:好的,我的意思是这样的。这里有3点,这是你应该通过连接它们来创建的部分。红色的那一行是应该填写的缺失部分。因此,如果您以正确的顺序提供3个点,则此例程应该创建这个4边多边形。
 

lpseifert 发表于 2022-7-6 11:31:01

这是一个快捷键。。。
我希望你学习并努力从中学习。

(defun c:test (/ oldsnap pt1 pt2 pt3)
(setq oldsnap (getvar "osmode"))
(setvar "osmode" 0)
(setq pt1 (getpoint "\nPick 1st point: ")
   pt2 (getpoint pt1 "\nPick 2nd point: ")
   pt3 (getpoint pt2 "\nPick 3rd point: "))
(entmake
   (list
   (cons 0   "LWPOLYLINE")
   (cons 100 "AcDbEntity")
   (cons 100 "AcDbPolyline")
   (cons 90 4)
   (cons 70 1)
   (cons 10 pt1)
   (cons 10 pt2)
   (cons 10 pt3)
   (cons 10 (polar pt3 (angle pt2 pt1)(distance pt2 pt1)))
   )
   )
(setvar "osmode" oldsnap)
(princ)
)

alanjt 发表于 2022-7-6 11:31:33

好东西,拉里,但你为什么要关掉奥斯奈普?他们没有影响力。

lpseifert 发表于 2022-7-6 11:35:03

我想是习惯的力量。。。
我认为osnap可能会影响getpoint

alanjt 发表于 2022-7-6 11:38:29

为getpoint启用OSnaps很好。如果没有,你将无法捕捉到任何东西。

lpseifert 发表于 2022-7-6 11:41:22

让我重述一下。。。
我认为使用正在运行的osnap可能会无意中返回一个点
(99%的时间我关闭osnaps,并根据需要使用键盘/工具栏)

alanjt 发表于 2022-7-6 11:44:31

这不会影响你发布的内容。事实上,只要你在每个点之前加上“_non”,你就可以使用命令(我不是这么建议的),而且不会造成任何伤害。
 
彼此彼此。

lpseifert 发表于 2022-7-6 11:48:47

没有没有。。。如果我那样做的话,恐怕李会狠狠地揍我一顿。
(只是开玩笑)
页: [1] 2
查看完整版本: 广场竣工