johnshar123xx 发表于 2022-7-6 12:06:57

难题-圆角Lisp

难题-圆角Lisp
 
 
AutoCAD 2007
我有很多棘手的问题/要求,我目前正在寻找一些LISP来解决它们。我一直在网上搜索我需要的lisps,虽然我已经找到了一些东西,但我仍然有一些东西,我似乎无法找到确切的我要找的东西。我想借此机会提前感谢每一位对我的问题有意见的人,感谢他们给予我的任何帮助。
 
想知道是否有人有一个lisp,可以让我圆角一条直线或多段线连接到一个圆弧

Lee Mac 发表于 2022-7-6 12:14:29

圆角半径是多少?

Lee Mac 发表于 2022-7-6 12:19:40


 

(defun c:fil (/ *error* e1 e2 vl ov)
(vl-load-com)

(defun *error* (e)
   (and ov (mapcar 'setvar vl ov))
   (or (wcmatch (strcase e) "*BREAK,*CANCEL*,*EXIT*")
       (princ (strcat "\n** Error: " e " **")))
   (princ))

(while
   (progn
   (setq e1 (car (entsel "\nSelect First Object: ")))

   (cond ((eq 'ENAME (type e1))
            (if (vl-position (cdr (assoc 0 (entget e1))) '("LINE" "LWPOLYLINE" "ARC"))
                (while
                  (progn
                  (setq e2 (car (entsel "\nSelect Second Object: ")))

                  (cond ((eq 'ENAME (type e2))

                           (if (not (vl-position (cdr (assoc 0 (entget e2))) '("LINE" "LWPOLYLINE" "ARC")))
                               (princ "\n** Object must be Line/Polyline/Arc **"))))))
               
                (princ "\n** Object must be Line/Polyline/Arc **"))))))

(setq vl '("CMDECHO" "OSMODE" "FILLETRAD") ov (mapcar 'getvar vl))
(mapcar 'setvar vl '(0 0 0.0))
(vl-cmdf "_.fillet" e1 e2)
(mapcar 'setvar vl ov)
(princ))

alanjt 发表于 2022-7-6 12:24:31

 
 
 
虽然我觉得这完全没有必要,也不值得普林斯这么做,但我想指出一点关于你的选择。圆角将工作时,只饲料2搪瓷,但会给混合的结果。始终为其提供“(ename点)。李,没有什么对你不利的,我只是想知道。
 
(defun c:fil (/ *error* e1 e2 vl ov)
(vl-load-com)

(defun *error* (e)
   (and ov (mapcar 'setvar vl ov))
   (or (wcmatch (strcase e) "*BREAK,*CANCEL*,*EXIT*")
       (princ (strcat "\n** Error: " e " **")))
   (princ))

(while
   (progn
   (setq e1 (entsel "\nSelect First Object: "))

   (cond ((eq 'ENAME (type (car e1)))
            (if (vl-position (cdr (assoc 0 (entget (car e1)))) '("LINE" "LWPOLYLINE" "ARC"))
                (while
                  (progn
                  (setq e2 (entsel "\nSelect Second Object: "))

                  (cond ((eq 'ENAME (type (car e2)))

                           (if (not (vl-position (cdr (assoc 0 (entget (car e2)))) '("LINE" "LWPOLYLINE" "ARC")))
                               (princ "\n** Object must be Line/Polyline/Arc **"))))))
               
                (princ "\n** Object must be Line/Polyline/Arc **"))))))

(setq vl '("CMDECHO" "OSMODE" "FILLETRAD") ov (mapcar 'getvar vl))
(mapcar 'setvar vl '(0 0 0.0))
(vl-cmdf "_.fillet" e1 e2)
(mapcar 'setvar vl ov)
(princ))
只要修剪一下,把所有的东西都当作尖端。然后只需选择这两条线。

Lee Mac 发表于 2022-7-6 12:28:53

谢谢艾伦的建议,谢谢。
 
我意识到Lisp程序对于这个微不足道的任务来说相当简单。。
 
也许这就是所有必要的:
 

(defun c:fil ( )
(command "_.fillet" pause pause)
(princ))

 
但在那一点上,为什么要麻烦呢。

alanjt 发表于 2022-7-6 12:37:33

 
没错,何必费心呢眨眼:
 
Command: F
FILLET
Current settings: Mode = TRIM, Radius = 0.00
Select first object or :
Select second object or shift-select to apply corner:
 
李,我只是在挑你的毛病。

Lee Mac 发表于 2022-7-6 12:44:42

 
我会一如既往地报答你的恩惠

alanjt 发表于 2022-7-6 12:47:59

 
哦,我肯定。

johnshar123xx 发表于 2022-7-6 12:51:10

嘿,伙计们,感谢你们抽出时间来查看我的问题,并帮助我回答这些问题。我无法让这些Lisp程序的词起作用。我附上了一个dwg文件和一些例子。我意识到它可能不完全是圆角,而是圆角类型的效果。也许这是不可能的。但我再次感谢你的努力。
鱼片。图纸

Lee Mac 发表于 2022-7-6 12:57:25

这是因为LISP提供的圆角半径为零,因为我们不确定您需要的半径。
页: [1] 2
查看完整版本: 难题-圆角Lisp