rrulep 发表于 2022-7-5 22:26:25

多段线曲线设置为零ra

大家好。
 
是否有任何lisp可以将多段线的半径更改为零。
 

 

MSasu 发表于 2022-7-5 22:32:31

这是一项无需自定义工具即可解决的任务;请检查内置命令PEDIT及其Decurve选项。

rrulep 发表于 2022-7-5 22:34:38

 
 
你好
 
decurve选项仅展平曲线。
如果可能,当我选择多段线时,它应该要求用户指定多段线中所有曲线的半径。

rrulep 发表于 2022-7-5 22:37:49

 
下面是我使用带decurve选项的pedit得到的。
 
在pedit命令之前(decurve选项)

 
在pedit命令之后(decurve选项)

MSasu 发表于 2022-7-5 22:42:15

或者,尝试使用“带多段线的圆角”选项,并将“半径”设置为0。

rrulep 发表于 2022-7-5 22:43:37

 
这就是我现在正在做的,但如果我处理具有数百条曲线的很长的多段线,这需要时间。

Tharwat 发表于 2022-7-5 22:47:46

也许是这个。
 

(defun c:Test (/ ss )
(if (setq ss (ssget "_:L" '((0 . "LWPOLYLINE"))))
((lambda (i / sn)
    (while (setq sn (ssname ss (setq i (1+ i))))
      (entmod (mapcar '(lambda (x) (if (eq (car x) 42) '(42 . 0.) x)) (entget sn)))
      (entupd sn)))
   -1)
)
(princ)
)

rrulep 发表于 2022-7-5 22:52:24

 
嗨tharwat。。
 
结果与Mircea使用带decurve选项的pedit的建议相同。它只是将曲线展平在一条多段线中。

rrulep 发表于 2022-7-5 22:53:40

 
嗨tharwat
 
你可能会对我想要实现的目标感到困惑。
 
lisp应该在下图中这样做。
 

suriwaits 发表于 2022-7-5 22:57:45

http://www.cadtutor.net/forum/archive/index.php/t-49834.html
(defun c:FP (/ ss)
;; Alan J. Thompson, 08.31.10
(initget 4)
(setvar 'filletrad
(cond
((getdist (strcat "\nSpecify fillet radius <" (rtos (getvar 'filletrad)) ">: ")))
((getvar 'filletrad))
)
)
(if (setq ss (ssget "_:L" '((0 . "LWPOLYLINE"))))
((lambda (i / e)
(while (setq e (ssname ss (setq i (1+ i))))
(command "_.fillet" "_polyline" e)
)
)
-1
)
)
(princ)
)
页: [1] 2
查看完整版本: 多段线曲线设置为零ra