Small Fish 发表于 2022-7-6 10:49:52

“break”和entlast

也许很简单。。。
如果我使用命令“break”将一条线分成两个实体,
那么我如何将其捕获到两个新的独立变量中呢。
如果我使用(setq e1(entlast))它将只返回断点的一侧。
如何将两侧保存为两个单独的值。
正如我所说,这可能很容易解决,但它让我打败了。
谢谢

Lee Mac 发表于 2022-7-6 11:00:01

只应创建一个实体,因此在中断之前指向原始实体的变量是另一个实体。

alanjt 发表于 2022-7-6 11:06:06

执行break命令后,一个对象是您选择的对象,另一个对象是entlast。

alanjt 发表于 2022-7-6 11:10:05

哎呀,忘记连接了。
 
如。
(defun _Break (ent pt)
(command "_.break" ent "_non" pt "_non" pt)
(list ent (entlast))
)
(_Break (car (entsel)) (getpoint))

Small Fish 发表于 2022-7-6 11:17:41

谢谢,这很有道理,尽管我仍在努力编写一些代码。
真正的问题是修剪。在我的照片中,我打破了一条线,
插入特征线符号,然后修剪线(这就是我卡住的地方)
 
 

(setq pt1 (getpoint "\nSpecify first point for breakline: "))
(setq pt2 (getpoint pt1 "\nSpecify second point for breakline: "))
(setq BrkScale 1)
(command "line" pt1 Pt2 "")
(setq e1 (entlast))
(setvar "OSMODE" 512)
(setq ptBrk (getpoint "\nPick point for break symbol"))
(command "break" e1 ptBrk ptBrk)
(setq e2 (entlast))
(command ".INSERT"
"BRKLINE2"
ptBrk
BrkScale;scale
""
pt1
pt2 ;angle
)
(setq e3(entlast))

(command ".TRIM" e3 "" e1 "");these are the
(command ".TRIM" e3 "" e2 "");problem lines

alanjt 发表于 2022-7-6 11:27:11

仅供参考,有一个快速工具可以做到这一点。

Small Fish 发表于 2022-7-6 11:36:16

这是真的,但我写的东西要好得多。我也想拥有的一件事是,在按下Enter键之前放置尽可能多的换行符我的代码在一个while循环中完成了这项工作。发布的代码只是一个片段。我就快到了——我只需要调整一下线路。我想这是最简单的一点。

Lee Mac 发表于 2022-7-6 11:37:48

为什么不把它停到正确的距离呢?

alanjt 发表于 2022-7-6 11:45:45

取块的实际距离,然后使用与第一个点(也是块的插入点)的极坐标和与两个拾取点的夹角来确定沿线的两个断点。

Lee Mac 发表于 2022-7-6 11:56:02

我想我在这里做过类似的事情。
页: [1]
查看完整版本: “break”和entlast