乐筑天下

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

[编程交流] 代码切一个矩形刚马

[复制链接]

10

主题

18

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 16:30:40 | 显示全部楼层 |阅读模式
大家好!我试图切一个多边形,但失败了。我希望每个人都能帮助我。我是autolisp的新成员。谢谢大家,祝大家度过愉快的一天
;lisp ve MC ngang cong hop theo cac thong so cho truoc
;su dung toa do tuong doi@theo diem chon truoc
;p、 tkcd-cienco625
(定义c:ch(\ a b c)
(setvar“OSMODE”0)
;kich thuoc聪跃
(setq a(getreal“\NNhap CHIEU RONG cong hop:)
b(getreal“\NNhap CHIEU CAO cong hop:)
c(getreal“\nHap be rong vat mep trong:”)
)
;diem ve cong公司
(setq dv(getpoint“\NChon diem ve MC:”)
(setq dv1(列表(+(car dv)b)(+(cadr dv)a)))
(命令“.RECTANG”dv dv1)
(命令“.CHAMFER”距离“c”c)
(命令“.CHAMFER”“Polyline”“last”“”)
(普林斯)
173043zwk3fkffvv8kv9l3.jpg
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 16:38:30 | 显示全部楼层
也许这会有所帮助。
 
(命令“Chamfer”D“c c”)
(命令“Chamfer”“P”(entlast))
回复

使用道具 举报

10

主题

18

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 16:50:38 | 显示全部楼层
 
谢谢你,但我再次尝试代码,结果是:*错误:参数太少**
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 16:51:16 | 显示全部楼层
  1. (defun c:chtest ( / a b c)
  2. (setvar "OSMODE" 0)
  3. (setq        a (getreal "\NNhap CHIEU RONG cong hop:"))
  4. (setq b (getreal "\NNhap CHIEU CAO cong hop:"))
  5. (setq c (getreal "\NNhap be rong vat mep trong:"))
  6. (setq dv (getpoint "\NChon diem ve MC:"))
  7. (setq dv1 (list (+ (car dv) b) (+ (cadr dv) a)))
  8. (command ".RECTANG" dv dv1)
  9. (command ".CHAMFER" "Distance" c c)
  10. (command ".CHAMFER" "P" (entlast))
  11. (princ)
  12. )
回复

使用道具 举报

10

主题

18

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 17:02:17 | 显示全部楼层
 
非常感谢
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:07:29 | 显示全部楼层
另一种方法是从第一个原则即8分,长度,宽度,倒角绘制。在lisp中使用polar。
回复

使用道具 举报

10

主题

18

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 17:16:12 | 显示全部楼层
173044v5v6plibbiiwzszb.jpg
谢谢大家,我正在试着画这个物体
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:21:03 | 显示全部楼层
如果还有什么其他的,操纵elist和entmod折线是很有趣的:
  1. (defun C:test ( / SS d i )
  2. (and (princ "\nSelect polylines to chamfer: ")
  3.    (setq SS (ssget "_:L" '((0 . "LWPOLYLINE"))))
  4.    (setq d (getdist "\nSpecify chamfer distance: "))
  5.    (repeat (setq i (sslength SS))
  6.      (_ChamferPoly (ssname SS (setq i (1- i))) d)
  7.    ); repeat
  8. ); and
  9. (princ)
  10. ); defun
  11. ; NOTE: it Straightens the bulges
  12. (defun _ChamferPoly ( e d / enx pts L nenx )
  13. (and
  14.    (setq enx (entget e))
  15.    (= "LWPOLYLINE" (cdr (assoc 0 enx)))
  16.    (setq pts (apply 'append (mapcar '(lambda (x) (if (= 10 (car x)) (list (cdr x)))) enx)))
  17.    (setq pts
  18.      (apply 'append
  19.        (mapcar '(lambda (x) (list (cons 10 x) '(40 . 0.0) '(41 . 0.0) '(42 . 0.0) '(91 . 0)))
  20.          (setq L
  21.            (cond
  22.              ( (= 1 (cdr (assoc 70 enx)))
  23.                (apply 'append
  24.                  (mapcar '(lambda (a b) (list (polar a (angle a b) d) (polar b (angle b a) d)))
  25.                    pts (append (cdr pts) (list (car pts)))
  26.                  )
  27.                )
  28.              )
  29.              (T
  30.                (apply 'append
  31.                  (reverse
  32.                    (cdr
  33.                      (reverse
  34.                        (mapcar '(lambda (a b) (list (polar a (angle a b) d) (polar b (angle b a) d)))
  35.                          pts (append (cdr pts) (list (car pts)))
  36.                        )
  37.                      )
  38.                    )
  39.                  )
  40.                )
  41.              )
  42.            ); cond
  43.          )
  44.        )
  45.      )
  46.    )
  47.    (setq nenx (apply 'append (mapcar '(lambda (x) (if (not (member (car x) '(10 40 41 42 91 210))) (list x))) enx)))
  48.    (entmod
  49.      (setq nenx
  50.        (append
  51.          (subst (cons 90 (length L)) (assoc 90 nenx) nenx)
  52.          pts
  53.          (list (assoc 210 enx))
  54.        )
  55.      )
  56.    )
  57. ); and
  58. ); defun _ChamferPoly
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 17:30:28 | 显示全部楼层
请阅读代码发布指南,并编辑代码以包含在代码标签中。[NOPARSE]
  1. Your Code Here[/NOPARSE]
=
  1. Your Code Here
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:34:50 | 显示全部楼层
外部对象可以用步骤来调用它,好的,画一个pline pick top vert side并回答几个问题,步骤被画成一条直线。
根据需要重复。是的,你需要Lisp程序。
 
有趣的是,这是一个带倒角的pline。代码可以通过使用双极化或使用sqrt 2*倒角@45的角度来减少。这样做的原因是显示你可以通过计算点来绘制任何形状。
 
  1. (defun c:plcham ( / pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10 pt11 pt12)
  2. (setq pi2 (/ pi 2.0))
  3. (setq pi15 (* pi 1.5))
  4. (setq pt1 (getpoint "Pick lower left"))
  5. (setq l (getdist pt1 "Enter length"))
  6. (setq w (getdist pt1 "Enter height"))
  7. (setq cham (getdist "Enter champher"))
  8. (setq cham2 (* cham 2.0))
  9. (setq pt2 (polar Pt1 0.0 cham))
  10. (setq pt3 (polar pt2 0.0 (- l cham2)))
  11. (setq pt4 (polar pt3 0.0 cham))
  12. (setq pt5 (polar pt4 pi2 cham))
  13. (setq pt6 (polar pt5 pi2 (- w cham2)))
  14. (setq pt7 (polar pt6 pi2 cham))
  15. (setq pt8 (polar pt7 pi cham))
  16. (setq pt9 (polar pt8 pi (- l cham2)))
  17. (setq pt10 (polar pt9 pi cham))
  18. (setq pt11 (polar pt10 pi15 cham))
  19. (setq pt12 (polar pt11 pi15 (- w cham2)))
  20. (command "pline" Pt2 pt3 pt5 pt6 pt8 pt9 pt11 pt12 "c")
  21. (princ)
  22. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-21 02:05 , Processed in 0.856983 second(s), 76 queries .

© 2020-2025 乐筑天下

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