乐筑天下

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

[编程交流] 关于圆角lisp的问题

[复制链接]

10

主题

38

帖子

28

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 07:45:04 | 显示全部楼层 |阅读模式
084511v7af5aeakzuqjyhj.jpg 084513wllxv95c9cqql4yq.jpg
 
 
您好,谁总是在这里学习Lisp程序。圆角相关问题。我想更改多段线,如图所示。Lisp的功能是可视化的,而不是可用的命令?
感谢您的关注。
084514xdoakig6tlpia9l5.jpg
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:27:47 | 显示全部楼层
不确定是否真的需要AutoLISP例程-请检查\u FILLET命令的“多段线”选项。您是否使用了AutoCAD的本地化版本?
回复

使用道具 举报

10

主题

38

帖子

28

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 08:51:20 | 显示全部楼层
这是我想要的样品。。
 
如果角度是90度,没有问题。
 
但若不是90dregree,那个就是多段线的奇怪形状
 
我认为变量p4 p5是错误的,但不能计算点。。是否可以使用visual lisp(非命令圆角函数)
我是韩国人cad版AUTOCAD 2007
 
  1. (defun c:aa
  2.    ( / r o b p1 p2 p3 p4 p5
  3.        _pt->cen
  4.        _tan
  5.        _lwpoly
  6.        _GetBulge
  7.        LM:Clockwise
  8.    )
  9.    (defun _pt->cen ( p1 p2)
  10.        (mapcar '(lambda (a b) (* 0.5 (+ a b))) p1 p2)
  11.    )
  12.    (defun _tan ( x )
  13.        (if (not (equal 0. (cos x) 1e-) (/ (sin x) (cos x)))
  14.    )
  15.    (defun _lwpoly ( lst cls )
  16.        (vlax-ename->vla-object
  17.            (entmakex
  18.                (append
  19.                    (list
  20.                        (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity")
  21.                        (cons 100 "AcDbPolyline") (cons 90 (length lst))
  22.                        (cons 70 cls)
  23.                    )
  24.                    (mapcar '(lambda (p) (cons 10 (trans p 1 0)))lst)
  25.                )
  26.            )
  27.        )
  28.    )
  29.    (defun LM:Clockwise ( p1 p2 p3 )
  30.        (< (sin (- (angle p1 p3) (angle p1 p2))) -1e-14)
  31.    )
  32.    (defun _GetBulge ( p1 p2 r / c a l p )
  33.        (setq c (_pt->cen p1 p2)
  34.              a (- (angle p1 p2) (* 0.5 pi))
  35.              l (sqrt (abs (- (* r r) (* (distance p1 c) (distance p1 c)))))
  36.              p (polar c a l)
  37.        ) (_tan (* (rem (- (angle p p2) (angle p p1)) pi) 0.25))
  38.    )
  39.    (setq p1 (getpoint "\n1st point :")
  40.          p2 (getpoint p1 "\n2nd point :")
  41.          p3 (getpoint p2 "\n3rd point :")
  42.          r  (getreal "\nFillet Radius :")
  43.          p4 (polar p2 (angle p2 p1) r)
  44.          p5 (polar p2 (angle p2 p3) r)
  45.    )
  46.    (setq o (_lwpoly (list p1 p4 p5 p3) 0)
  47.          b (_Getbulge p4 p5 r)
  48.    )
  49.    (if (LM:clockwise p1 p2 p3)
  50.        (setq b (- (abs b)))
  51.        (setq b (abs b))
  52.    )
  53.    (vla-setbulge o 1 b)
  54.    b
  55. )(vl-load-com)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:30 , Processed in 0.892825 second(s), 61 queries .

© 2020-2025 乐筑天下

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