BIGAL 发表于 2022-7-6 11:17:13

从已知点进入

我相信这很简单,但无法实现。
 
我有一条折线,它将其分解,现在想在同一个拾取点选择新线,而不是拾取两次。在接下来的例行工作中需要一条线路。
 
Entsel可以使用一个点,但我不能让它使用返回的第一个Entsel点、字符串列表等

MSasu 发表于 2022-7-6 11:24:24

使用ENTLAST语句选择它-分解后,该行成为数据库中的最后一个实体。如果多段线仅由一条线完成,则效果良好。
对于多段多段线,可以记录分解前最后一个图元的名称,并在分解后解析新添加的项目,以找到最接近选择点的项目。
 
当做

MSasu 发表于 2022-7-6 11:27:24

或者可以使用:
 
(ssget MySelectionPoint)
 
当做

Lee Mac 发表于 2022-7-6 11:34:12

另一种方法:
 

(defun EntnextToEnd ( ent )
(if (setq ent (entnext ent))
   (cons ent (EntnextToEnd ent))))


(defun c:test (/ ent eLast ss )

(if (setq ent (car (entsel)))
   (progn
   (setq eLast (entlast))

   (command "_.explode" ent)

   (setq ss (ssadd))

   (mapcar
       (function
         (lambda ( e )
         (ssadd e ss))) (EntnexttoEnd eLast))

   (sssetfirst nil ss)))

(princ))

viviancarvalho 发表于 2022-7-6 11:34:27


就连我也有同样的问题。
我想选择两条线,并再次使用这些相同的拾取点。它可以是entsel和getpoint的组合,也可以是entsel和getpoint的组合。这怎么可能实现?
请帮忙

Lee Mac 发表于 2022-7-6 11:42:50

您可以将拾取的点存储为变量,getpoint显然会返回拾取的点,而entsel返回一个两元素列表:
 

(<entityname> (x y z))

 
第二个元素是拾取点-但是请记住,拾取点是拾取框的中心,它不一定位于拾取的对象上。
 

alanjt 发表于 2022-7-6 11:46:03

 
该点也可以是“(0.0.0)如果用户最后发出“L”。
 
如。
Command: (entsel)

Select object: l
(<Entity name: 77831480> (0.0 0.0 0.0))

BIGAL 发表于 2022-7-6 11:51:11

在我看来,SSGET工作时,entsel似乎不允许自动选取点。
 
关于拾取上面的两条线不是问题,只需entsel并生成两个变量或ssget两个对象,就可以计算出线的中间点(ssget no pick point)。

alanjt 发表于 2022-7-6 11:52:18

(setq p (getpoint))
(setq ss (ssget p))
(setq e (ssname ss 0))

(nentselp (getpoint))

BIGAL 发表于 2022-7-6 11:56:02

嗨,伙计们,你们不讨厌当一些事情不起作用,你们看不到它的时候吗。
 
这是代码的一部分
 
(setq obj (entsel"\nPick back of kerb line"))
(setvar "osmode" 0)
(setq objtype (cdr (assoc 0 (entget (car obj)))))
(IF (or (= objtype "POLYLINE")(= objtype "LWPOLYLINE"))
(progn
(setq objpt (cadr obj))
(princ "\nNow exploding polyline that was picked :")
(command "explode" obj "")
(setq ss (ssget objpt))
(setq obj2 (entget (ssname ss 0)))
)
(setq obj2 (entget (car obj)))   ; else is line
)
 
obj2在任何一种情况下都可以正常工作
 
再往前走,需要休息
(命令“break”pt15 pt16)
如果原始代码是一个ployline,然后分解,那么这不起作用,但是如果原始代码是一行,那么它可以完美地工作,如果我在命令提示符下运行此中断代码,它可以工作吗?
 
如果有任何想法,我们将不胜感激。其他人只要看一眼,就会立刻找到原因。
页: [1] 2
查看完整版本: 从已知点进入