乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 23|回复: 11

[编程交流] 难题-圆角Lisp

[复制链接]

12

主题

29

帖子

17

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 12:06:57 | 显示全部楼层 |阅读模式
难题-圆角Lisp
 
 
AutoCAD 2007
我有很多棘手的问题/要求,我目前正在寻找一些LISP来解决它们。我一直在网上搜索我需要的lisps,虽然我已经找到了一些东西,但我仍然有一些东西,我似乎无法找到确切的我要找的东西。我想借此机会提前感谢每一位对我的问题有意见的人,感谢他们给予我的任何帮助。
 
想知道是否有人有一个lisp,可以让我圆角一条直线或多段线连接到一个圆弧
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:14:29 | 显示全部楼层
圆角半径是多少?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:19:40 | 显示全部楼层

 
  1. (defun c:fil (/ *error* e1 e2 vl ov)
  2. (vl-load-com)
  3. (defun *error* (e)
  4.    (and ov (mapcar 'setvar vl ov))
  5.    (or (wcmatch (strcase e) "*BREAK,*CANCEL*,*EXIT*")
  6.        (princ (strcat "\n** Error: " e " **")))
  7.    (princ))
  8. (while
  9.    (progn
  10.      (setq e1 (car (entsel "\nSelect First Object: ")))
  11.      (cond (  (eq 'ENAME (type e1))
  12.               (if (vl-position (cdr (assoc 0 (entget e1))) '("LINE" "LWPOLYLINE" "ARC"))
  13.                 (while
  14.                   (progn
  15.                     (setq e2 (car (entsel "\nSelect Second Object: ")))
  16.                     (cond (  (eq 'ENAME (type e2))
  17.                              (if (not (vl-position (cdr (assoc 0 (entget e2))) '("LINE" "LWPOLYLINE" "ARC")))
  18.                                (princ "\n** Object must be Line/Polyline/Arc **"))))))
  19.                
  20.                 (princ "\n** Object must be Line/Polyline/Arc **"))))))
  21. (setq vl '("CMDECHO" "OSMODE" "FILLETRAD") ov (mapcar 'getvar vl))
  22. (mapcar 'setvar vl '(0 0 0.0))
  23. (vl-cmdf "_.fillet" e1 e2)
  24. (mapcar 'setvar vl ov)
  25. (princ))
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 12:24:31 | 显示全部楼层
 
 
 
虽然我觉得这完全没有必要,也不值得普林斯这么做,但我想指出一点关于你的选择。圆角将工作时,只饲料2搪瓷,但会给混合的结果。始终为其提供“(ename点)。李,没有什么对你不利的,我只是想知道。
 
  1. (defun c:fil (/ *error* e1 e2 vl ov)
  2. (vl-load-com)
  3. (defun *error* (e)
  4.    (and ov (mapcar 'setvar vl ov))
  5.    (or (wcmatch (strcase e) "*BREAK,*CANCEL*,*EXIT*")
  6.        (princ (strcat "\n** Error: " e " **")))
  7.    (princ))
  8. (while
  9.    (progn
  10.      (setq e1 (entsel "\nSelect First Object: "))
  11.      (cond (  (eq 'ENAME (type (car e1)))
  12.               (if (vl-position (cdr (assoc 0 (entget (car e1)))) '("LINE" "LWPOLYLINE" "ARC"))
  13.                 (while
  14.                   (progn
  15.                     (setq e2 (entsel "\nSelect Second Object: "))
  16.                     (cond (  (eq 'ENAME (type (car e2)))
  17.                              (if (not (vl-position (cdr (assoc 0 (entget (car e2)))) '("LINE" "LWPOLYLINE" "ARC")))
  18.                                (princ "\n** Object must be Line/Polyline/Arc **"))))))
  19.                
  20.                 (princ "\n** Object must be Line/Polyline/Arc **"))))))
  21. (setq vl '("CMDECHO" "OSMODE" "FILLETRAD") ov (mapcar 'getvar vl))
  22. (mapcar 'setvar vl '(0 0 0.0))
  23. (vl-cmdf "_.fillet" e1 e2)
  24. (mapcar 'setvar vl ov)
  25. (princ))

只要修剪一下,把所有的东西都当作尖端。然后只需选择这两条线。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:28:53 | 显示全部楼层
谢谢艾伦的建议,谢谢。
 
我意识到Lisp程序对于这个微不足道的任务来说相当简单。。
 
也许这就是所有必要的:
 
  1. (defun c:fil ( )
  2. (command "_.fillet" pause pause)
  3. (princ))

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

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 12:37:33 | 显示全部楼层
 
没错,何必费心呢眨眼:
 
  1. Command: F
  2. FILLET
  3. Current settings: Mode = TRIM, Radius = 0.00
  4. Select first object or [undo/Polyline/Radius/Trim/Multiple]:
  5. Select second object or shift-select to apply corner:

 
李,我只是在挑你的毛病。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:44:42 | 显示全部楼层
 
我会一如既往地报答你的恩惠
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 12:47:59 | 显示全部楼层
 
哦,我肯定。
回复

使用道具 举报

12

主题

29

帖子

17

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 12:51:10 | 显示全部楼层
嘿,伙计们,感谢你们抽出时间来查看我的问题,并帮助我回答这些问题。我无法让这些Lisp程序的词起作用。我附上了一个dwg文件和一些例子。我意识到它可能不完全是圆角,而是圆角类型的效果。也许这是不可能的。但我再次感谢你的努力。
鱼片。图纸
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:57:25 | 显示全部楼层
这是因为LISP提供的圆角半径为零,因为我们不确定您需要的半径。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 10:19 , Processed in 0.415054 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表