乐筑天下

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

[编程交流] 列出样条曲线、椭圆、圆弧。。。

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:24:28 | 显示全部楼层
以下是一些帮助您入门的代码:
  1. (defun c:ar ( / e i n s )
  2.    (alert
  3.        (strcat
  4.            (if (setq s (ssget "_X" '((0 . "ELLIPSE"))))
  5.                (strcat "Found " (itoa (sslength s)) " ellipse" (if (= 1 (sslength s)) "." "s."))
  6.                "No ellipses found."
  7.            )
  8.            (if (setq s (ssget "_X" '((0 . "SPLINE"))))
  9.                (strcat "\nFound " (itoa (sslength s)) " spline" (if (= 1 (sslength s)) "." "s."))
  10.                "\nNo splines found."
  11.            )
  12.            (if (setq s (ssget "_X" '((0 . "ARC"))))
  13.                (progn
  14.                    (setq n 0)
  15.                    (repeat (setq i (sslength s))
  16.                        (setq e (entget (ssname s (setq i (1- i)))))
  17.                        (if (< (* (cdr (assoc 40 e)) (rem (+ (- (cdr (assoc 51 e)) (cdr (assoc 50 e))) pi pi) (+ pi pi))) 0.125)
  18.                            (setq n (1+ n))
  19.                        )
  20.                    )
  21.                    (if (< 0 n)
  22.                        (strcat "\nFound " (itoa n) " arc" (if (= 1 n) "" "s") " shorter than 1/8"")
  23.                        "\nNo arcs shorter than 1/8" found."
  24.                    )
  25.                )
  26.                "\nNo arcs found."
  27.            )
  28.        )
  29.    )
  30.    (princ)
  31. )
回复

使用道具 举报

2

主题

20

帖子

18

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:28:52 | 显示全部楼层
样条线和椭圆可以是任何大小。。。。。只有小于1/8英寸的圆弧和直线
非常感谢。
回复

使用道具 举报

2

主题

20

帖子

18

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:31:17 | 显示全部楼层
谢谢你,李,太好了。。。正是我想要的。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:34:21 | 显示全部楼层
不客气我希望代码是明确的。
回复

使用道具 举报

2

主题

20

帖子

18

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:38:30 | 显示全部楼层
效果很好。。。您还可以添加长度小于1/8”的线条,并将所有选定项目(样条线、椭圆、弧和小于1/8”的线条)移动到图层名称“fix”吗
谢谢
回复

使用道具 举报

2

主题

20

帖子

18

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:40:08 | 显示全部楼层
嗨,李麦克,
 
 
您还可以添加长度小于1/8”的线条,并将所有选定项目(样条线、椭圆、弧和小于1/8”的线条)移动到图层名称“fix”吗
 
 
谢谢
回复

使用道具 举报

2

主题

20

帖子

18

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:42:47 | 显示全部楼层
嗨,李麦克,
 
 
Hi试图修改代码以选择小于1/8”的行…但不起作用…请查看代码
 
 
  1. (defun c:stt ( / e i n s )
  2.    (alert
  3.        (strcat
  4.            (if (setq se (ssget "_X" '((0 . "ELLIPSE"))))
  5.                (strcat "Found  " (itoa (sslength se)) "  Ellipse" (if (= 1 (sslength se)) "." "s."))
  6.                "\nNo ellipses found."
  7.            )
  8.                      
  9.            (if (setq sp (ssget "_X" '((0 . "SPLINE"))))
  10.                (strcat "\nFound  " (itoa (sslength sp)) "  Spline" (if (= 1 (sslength sp)) "." "s."))
  11.                "\nNo Splines found."
  12.            )
  13.          (if (setq sl (ssget "_X" '((0 . "LINE"))))
  14.                (strcat "\nFound  " (itoa (sslength sl)) "  Line" (if (= 1 (sslength sl)) "." "s."))
  15.                "\nNo Lines found."
  16.            )
  17.            (if (setq sa (ssget "_X" '((0 . "ARC"))))
  18.                (progn
  19.                    (setq n 0)
  20.                    (repeat (setq i (sslength sa))
  21.                        (setq e (entget (ssname sa (setq i (1- i)))))
  22.                        (if (< (* (cdr (assoc 40 e)) (rem (+ (- (cdr (assoc 51 e)) (cdr (assoc 50 e))) pi pi) (+ pi pi))) 0.125)
  23.                            (setq n (1+ n))
  24.                        )
  25.                    )
  26.                    (if (< 0 n)
  27.                        (strcat "\nFound  " (itoa n) "  Arc" (if (= 1 n) "" "s") " shorter than 1/8"")
  28.                        "\nNo Arcs shorter than 1/8" found."
  29.                    )
  30.                )
  31.                "\nNo arcs found."              
  32.            
  33.            )
  34.        )
  35.    )
  36. (command "LAYER" "NEW" "FIX" "COLOR" "5" "FIX" "")
  37. (COMMAND "CHANGE" se sp sa sl "" "p"  "layer" "fix" "")
  38.    (princ)
  39. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:47:26 | 显示全部楼层
请尝试以下操作:
[code](defun c:stt(/e i n sa se sl sp)(警报(strcat(if(setq se(ssget“_X”)((0。“椭圆”)(8。”~固定”)))(strcat“Found”(itoa(sslength se))“椭圆”(if(=1(sslength se)))“s.”)“\n未找到省略号。”)(if(setq sp(ssget“_X”'((0.“SPLINE”)(8.“FIX”))))(strcat“\n找到”(itoa(sslength sp))“SPLINE”(if(=1(sslength sp))”“s.”)“\n未找到样条线。”)(if(setq sl(ssget“_X”'((0。“LINE”)(8。”~ FIX”)))(progn(repeat(setq i(sslength sl))(setq e(entget(ssname sl(setq i(1-i ))))))))(if(
回复

使用道具 举报

2

主题

20

帖子

18

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:49:39 | 显示全部楼层
非常感谢李,很好。
回复

使用道具 举报

2

主题

20

帖子

18

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:53:44 | 显示全部楼层
嗨,李,我只是注意到一件事在日常。。。如果您使用该命令两次。。。第二次,它无法识别任何椭圆、样条弧和直线。。。如果我把图层改回“0”,它就会识别。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-1 10:47 , Processed in 2.697604 second(s), 70 queries .

© 2020-2025 乐筑天下

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