乐筑天下

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

[编程交流] LISP中的圆角多段线

[复制链接]

11

主题

40

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-5 22:54:49 | 显示全部楼层
谢谢大家,我已经通过了你们的建议并做出了改变。也解决了圆角的问题。
 
 
(命令
“圆角”“\u r”0.03
“.fillet”“\u polyline”b1
“_.fillet”“\u polyline”b2
“.fillet”“\u polyline”b6
“.fillet”“\u polyline”b9
“_.fillet”“\u polyline”(mapcar’+pLL(列表10.941 2.5 0))
“_.fillet”“\u polyline”(地图车'+脉冲(列表10.941-2.5 0))
)
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-5 22:55:37 | 显示全部楼层
好交易。
回复

使用道具 举报

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:00:12 | 显示全部楼层
亲爱的大家!
 
请帮帮我!
 
(defun fb(r1 r2 b)
....
)
 
需求内容如图所示
 

                               
登录/注册后可看大图

 
链接:https://drive.google.com/file/d/0B4IWlz7EzcZLa3Z0X2hCWGh5bWc/view?usp=sharing
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:04:25 | 显示全部楼层
 
你好萬里独行 欢迎来到论坛
请理解,我们是志愿者,所以不要期望过高
1.如果闭合多段线,则效果不佳。(提示:dxf 70)
2.偏移过大时出错
3.仅应用标准圆角和半径
所以你可以学习,修改等等。。
希望总比什么都没有好
 
  1. ;fop.lsp :fillet open polyline
  2. (defun c:fop (/ *error*  r e d)
  3. ;hanhphuc 2014
  4. (defun *error* (msg) (if msg
  5. (princ "\n*cancel*")))
  6. (if (and (not (initget 5))
  7.    (setq r (getdist "\nRadius : "))
  8.    (not (initget 7))
  9.    (setq d (getdist "\nWidth : "))
  10.    (setq e (entsel "\nSelect Polyline.. "))
  11.    (setq e (car e))
  12.    (=(cdr(assoc 0 (entget e)))"LWPOLYLINE")
  13.    (vl-cmdf "_fillet" "P" e)
  14.    (setq e (vlax-ename->vla-object e))
  15.    
  16.    ) ;_ end of and
  17.    (foreach x '("StartPoint" "EndPoint")
  18.      (entmakex
  19. (vl-list* '(0 . "LINE")
  20.           (cons 8 (vla-get-layer e))
  21.           (mapcar 'cons
  22.                   '(10 11)
  23.                   (mapcar '(lambda (o) ((eval (read (strcat "vlax-curve-get" x))) o))
  24.                           (apply 'append (mapcar ''((x) (vlax-invoke e 'Offset (x (* d 0.5)))) (list + -)))
  25.                           ) ;_ end of mapcar
  26.                   ) ;_ end of mapcar
  27.           ) ;_ end of vl-list*
  28. ) ;_ end of entmakex
  29.      ) ;_ end of foreach
  30.   (princ "\nsorry..")
  31.    ) ;_ end of if
  32. (princ)
  33. )
回复

使用道具 举报

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:08:50 | 显示全部楼层
 
非常感谢!但是
 
圆角多段线具有2个半径:R1和R2
+R1表示结束
+R2用于MID
 

很抱歉我的英语太差了!
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:10:15 | 显示全部楼层
 
这意味着你只有2个R1,为什么可以手动完成??
使用FOP。中间R2的lsp。
 
如果完全自动化,则需要编写单圆角函数。但希望我能有更多的空闲时间
 
以下是一些有用的多段线工具HTH
回复

使用道具 举报

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:13:51 | 显示全部楼层
可用时间:
1、开放多段线。
2、层边界。
 
输入:R1、R2和B
1.R1是起点和终点的圆角半径。
2.R2是剩余顶点之间的圆角半径
3.B是边界宽度。
 
要求:
边界是“边界”层中的多段线(可用)
 
(*)详细说明见附件。
普林。图纸
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-1 10:52 , Processed in 0.841617 second(s), 64 queries .

© 2020-2025 乐筑天下

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