pman860507 发表于 2022-7-5 16:22:51

lisp中的Arc命令

我相信有办法做到这一点。我正在lisp文件中使用命令“arc”。我的中点和终点需要存储为变量。目前看起来是这样的。但我希望它能像正常的弧命令一样显示弧。
 
一如既往,谢谢。
 
我真正需要的是弧的终点。我知道有一种visal lisp的方法可以做到这一点,但我对此一无所知。

alanjt 发表于 2022-7-5 16:26:33

??
 
(defun _arc (centerpoint / ent)
(setq ent (entlast))
(command "_.arc" "_c" "_non" centerpoint)
(while (eq (logand 1 (getvar 'CMDACTIVE)) 1) (command PAUSE))
(if (not (equal ent (setq ent (entlast))))
   ent
)
)

(defun c:Test (/ point arc)
(vl-load-com)
(if (and (setq point "\nSpecify center point: ")
          (setq arc (_arc point))
   )
   (vlax-curve-getEndPoint arc)
)
)

 
另外/或,查看LASPOINT变量。(getvar’LASTPOINT)

Lee Mac 发表于 2022-7-5 16:31:05

或者,仅使用香草:
 
(defun c:Test ( / point arc )
   (if (and (setq point (getpoint "\nSpecify center point: "))
            (setq arc (_arc point))
            (setq arc (entget arc))
       )
       (polar
         (cdr (assoc 10 arc))
         (cdr (assoc 51 arc))
         (cdr (assoc 40 arc))
       )
   )
)
 
(使用Alan发布的“u arc”函数)

alanjt 发表于 2022-7-5 16:35:26

哈哈,我就知道你会来投递香草的方式。我想我不应该这么懒。

pman860507 发表于 2022-7-5 16:37:24

谢谢(getvar’lastpoint)工作得很好,也没有让我改变很多代码。
 
再次感谢。

alanjt 发表于 2022-7-5 16:41:21

我会使用我发布的arc命令和李的提取方法(不需要VLA)-它更稳定/可靠。

Lee Mac 发表于 2022-7-5 16:43:47

 
我们被曲线函数宠坏了

alanjt 发表于 2022-7-5 16:48:53

我完全同意。我知道如何用另一种方法得到它,但是vlax曲线*函数让我太懒了。

pman860507 发表于 2022-7-5 16:51:55

嗯,它不像我需要的那样工作。这是我的错,我没有解释我需要它如何工作。
 
选择startpoint。(已定义为选定对象的插入点)。
 
然后选择中点。
 
然后选择端点。

alanjt 发表于 2022-7-5 16:56:07

好的,您的原始代码有“cent”,所以我假设您想从曲线的中心开始。你提供的信息越多,你收到的结果就越好,别人花在帮助你上的时间也就越少。 
3
页: [1] 2
查看完整版本: lisp中的Arc命令