乐筑天下

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

[编程交流] 在所有Autocad en上放置点

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:20:01 | 显示全部楼层 |阅读模式
大家好
 
我发现这个代码是早些时候张贴在这个论坛上,我想知道是否有可能改变它。我需要能够在某些Autocad图元上放置点。
例如
线条的起点和终点。
多段线的每个顶点。
弧的中间和末端。
圆心。
和块的插入点。
我已经设法更改了代码,使其适用于线、圆和块
但似乎无法更改圆弧。有人能给我指出正确的方向吗。
谢谢
 
谢谢
 
; 在多段线顶点处绘制点
; 和(M)个文本插入点
;;; mfuccaro@hotmail.com 09.06.2003
;
(defun c:pts(/ss i首先删除零)
(setvar“CMDECHO”0)
(命令“UNDO”“begin”)
(setq ss(ssget)i 0)
(重复(sslength ss)
(setq elist(entget(ssname ss i))
零(cdr(assoc 0 elist)))
(如果(或(=零“TEXT”)(=零“MTEXT”)(=零“LWPOLYLINE”)(=零“圆”)(=零“线”))
(当elist
(setq first(car elist)elist(cdr elist))
(if(=10(车辆优先))(命令“点”(cdr优先))
))
(setq i(1+i))
)
(命令“undo”“end”)
(setvar“CMDECHO”1)
(普林斯)
)
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 08:27:32 | 显示全部楼层
在这里,试试这个,但它是预测没有弧的LWPOLYLINE。。。弧作为独立的对象,根据需要在起点、终点和中点编程,直线也会重新编程以考虑起点和终点。。。
 
  1. ; Draw POINTs at POLYLINE vertexes
  2. ; and at (M)TEXT insertion points
  3. ;;; mfuccaro@hotmail.com 09.06.2003
  4. ;
  5. (defun c:pts ( / ss i elist zero first second third fourth )
  6. (setvar "CMDECHO" 0)
  7. (command "UNDO" "begin")
  8. (setq ss (ssget) i 0)
  9. (repeat (sslength ss)
  10. (setq elist (entget (ssname ss i))
  11. zero (cdr (assoc 0 elist)))
  12. (cond
  13. ((OR (= zero "TEXT") (= zero "MTEXT") (= zero "CIRCLE"))
  14. (progn
  15. (setq first (assoc 10 elist))
  16. (command "POINT" (cdr first))
  17. ))
  18. ((= zero "LWPOLYLINE")
  19. (progn
  20. (while elist
  21. (setq first (car elist) elist (cdr elist))
  22. (if (= (car first) 10) (command "POINT" (cdr first)))
  23. )
  24. ))
  25. ((= zero "LINE")
  26. (progn
  27. (setq first (assoc 10 elist) second (assoc 11 elist))
  28. (command "POINT" (cdr first))
  29. (command "POINT" (cdr second))
  30. ))
  31. ((= zero "ARC")
  32. (progn
  33. (setq first (assoc 10 elist) second (assoc 40 elist) third (assoc 50 elist) fourth (assoc 51 elist))
  34. (command "POINT" (polar (cdr first) (cdr third) (cdr second)))
  35. (command "POINT" (polar (cdr first) (cdr fourth) (cdr second)))
  36. (command "POINT" (polar (cdr first) (/ (+ (cdr third) (cdr fourth)) 2.0) (cdr second)))
  37. ))
  38. )
  39. (setq i (1+ i))
  40. )
  41. (command "undo" "end")
  42. (setvar "CMDECHO" 1)
  43. (princ)
  44. )
M.R。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 08:33:11 | 显示全部楼层
或者像这样:
 
  1. [b][color=BLACK]([/color][/b]defun c:vpoints [b][color=FUCHSIA]([/color][/b]/ ss en ed et vl el pl ce ra sa ea ia i c[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]setvar [color=#2f4f4f]"PDMODE"[/color] 3[b][color=FUCHSIA])[/color][/b]
  3. [b][color=FUCHSIA]([/color][/b]defun massoc [b][color=NAVY]([/color][/b]key alist / x nlist[b][color=NAVY])[/color][/b]
  4.    [b][color=NAVY]([/color][/b]foreach x alist
  5.      [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]eq key [b][color=BLUE]([/color][/b]car x[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  6.          [b][color=GREEN]([/color][/b]setq nlist [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]cdr x[b][color=RED])[/color][/b] nlist[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  7.    [b][color=NAVY]([/color][/b]reverse nlist[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  8. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"3DFACE,ARC,CIRCLE,INSERT,LINE,LWPOLYLINE,SOLID,TRACE"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  9.       [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]setq en [b][color=MAROON]([/color][/b]ssname ss 0[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  10.              [b][color=NAVY]([/color][/b]setq ed [b][color=MAROON]([/color][/b]entget en[b][color=MAROON])[/color][/b]
  11.                    et [b][color=MAROON]([/color][/b]cdr [b][color=GREEN]([/color][/b]assoc 0 ed[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  12.              [b][color=NAVY]([/color][/b]cond [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= et [color=#2f4f4f]"LWPOLYLINE"[/color][b][color=GREEN])[/color][/b]
  13.                     [b][color=GREEN]([/color][/b]setq vl [b][color=BLUE]([/color][/b]massoc 10 ed[b][color=BLUE])[/color][/b]
  14.                           el [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 38 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  15.                     [b][color=GREEN]([/color][/b]foreach p vl
  16.                        [b][color=BLUE]([/color][/b]setq pl [b][color=RED]([/color][/b]cons [b][color=PURPLE]([/color][/b]trans [b][color=TEAL]([/color][/b]list [b][color=OLIVE]([/color][/b]car p[b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]cadr p[b][color=OLIVE])[/color][/b] el[b][color=TEAL])[/color][/b] en 0[b][color=PURPLE])[/color][/b] pl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  17.                    [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= et [color=#2f4f4f]"ARC"[/color][b][color=GREEN])[/color][/b]
  18.                     [b][color=GREEN]([/color][/b]setq ce [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 10 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  19.                           ra [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 40 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  20.                           sa [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 50 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  21.                           ea [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 51 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  22.                           ia [b][color=BLUE]([/color][/b]if [b][color=RED]([/color][/b]> sa ea[b][color=RED])[/color][/b]
  23.                                  [b][color=RED]([/color][/b]+ [b][color=PURPLE]([/color][/b]- [b][color=TEAL]([/color][/b]* 2 pi[b][color=TEAL])[/color][/b] sa[b][color=PURPLE])[/color][/b] ea[b][color=RED])[/color][/b]
  24.                                  [b][color=RED]([/color][/b]- ea sa[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  25.                           pl [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]trans [b][color=PURPLE]([/color][/b]polar ce sa ra[b][color=PURPLE])[/color][/b] en 0[b][color=RED])[/color][/b] pl[b][color=BLUE])[/color][/b]
  26.                           pl [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]trans [b][color=PURPLE]([/color][/b]polar ce ea ra[b][color=PURPLE])[/color][/b] en 0[b][color=RED])[/color][/b] pl[b][color=BLUE])[/color][/b]
  27.                           pl [b][color=BLUE]([/color][/b]cons [b][color=RED]([/color][/b]trans [b][color=PURPLE]([/color][/b]polar ce [b][color=TEAL]([/color][/b]+ sa [b][color=OLIVE]([/color][/b]* ia 0.5[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] ra[b][color=PURPLE])[/color][/b] en 0[b][color=RED])[/color][/b] pl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  28.                 [b][color=MAROON]([/color][/b]T
  29.                   [b][color=GREEN]([/color][/b]foreach g '[b][color=BLUE]([/color][/b]10 11 12 13[b][color=BLUE])[/color][/b]
  30.                     [b][color=BLUE]([/color][/b]and [b][color=RED]([/color][/b]assoc g ed[b][color=RED])[/color][/b]
  31.                          [b][color=RED]([/color][/b]setq pl [b][color=PURPLE]([/color][/b]cons [b][color=TEAL]([/color][/b]trans [b][color=OLIVE]([/color][/b]cdr [b][color=GRAY]([/color][/b]assoc g ed[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b] en 0[b][color=TEAL])[/color][/b] pl[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  32.              [b][color=NAVY]([/color][/b]ssdel en ss[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  33.       [b][color=FUCHSIA]([/color][/b]setq i 0 c 0[b][color=FUCHSIA])[/color][/b]
  34.       [b][color=FUCHSIA]([/color][/b]foreach p pl
  35.           [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]member p [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]member p pl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  36.                [b][color=MAROON]([/color][/b]setq c [b][color=GREEN]([/color][/b]1+ c[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  37.                [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"POINT"[/color][b][color=BLUE])[/color][/b]
  38.                               [b][color=BLUE]([/color][/b]cons 10 p[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  39.           [b][color=NAVY]([/color][/b]setq i [b][color=MAROON]([/color][/b]1+ i[b][color=MAROON])[/color][/b]
  40.                pl [b][color=MAROON]([/color][/b]cdr pl[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  41. [b][color=FUCHSIA]([/color][/b]princ [b][color=NAVY]([/color][/b]strcat [b][color=MAROON]([/color][/b]rtos i 2 0[b][color=MAROON])[/color][/b] [color=#2f4f4f]" Atom Point List vs "[/color]
  42.                 [b][color=MAROON]([/color][/b]rtos c 2 0[b][color=MAROON])[/color][/b] [color=#2f4f4f]" Unique POINTs"[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  43. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

可以操作过滤器列表以删除面或实体等。
 
-大卫
回复

使用道具 举报

13

主题

46

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 08:38:26 | 显示全部楼层
美好的但是,如果我想要Autocad mechanical 2011工具集库项的插入点中的一个点,这可能吗?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 08:48:17 | 显示全部楼层
 
它们到底是什么-大卫
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:54:05 | 显示全部楼层
另一种方法是使用曲线函数:
 
  1. (defun c:points ( / e i j l s x )
  2.    (defun _point ( p )
  3.        (entmake (list '(0 . "POINT") (cons 10 p)))
  4.    )
  5.    (if (setq s (ssget '((0 . "*POLYLINE,LINE,ARC,CIRCLE,INSERT"))))
  6.        (repeat (setq i (sslength s))
  7.            (setq e (ssname s (setq i (1- i)))
  8.                  l (entget e)
  9.            )
  10.            (cond
  11.                (   (eq "LINE" (setq x (cdr (assoc 0 l))))
  12.                    (_point (cdr (assoc 10 l)))
  13.                    (_point (cdr (assoc 11 l)))
  14.                )
  15.                (   (wcmatch x "*POLYLINE")
  16.                    (repeat (setq j (1+ (fix (vlax-curve-getendparam e))))
  17.                        (_point (vlax-curve-getpointatparam e (setq j (1- j))))
  18.                        (if (not (equal '(0 0 0) (vlax-curve-getsecondderiv e j)))
  19.                            (_point (vlax-curve-getpointatparam e (+ j 0.5)))
  20.                        )
  21.                    )
  22.                )
  23.                (   (eq "CIRCLE" x)
  24.                    (_point (trans (cdr (assoc 10 l)) e 0))
  25.                )
  26.                (   (eq "ARC" x)
  27.                    (_point (vlax-curve-getstartpoint e))
  28.                    (_point (vlax-curve-getendpoint   e))
  29.                    (_point
  30.                        (vlax-curve-getpointatparam e
  31.                            (/ (+ (vlax-curve-getstartparam e) (vlax-curve-getendparam e)) 2.0)
  32.                        )
  33.                    )
  34.                )
  35.                (   t
  36.                    (_point (trans (cdr (assoc 10 l)) e 0))
  37.                )
  38.            )
  39.        )
  40.    )
  41.    (princ)
  42. )
  43. (vl-load-com) (princ)
回复

使用道具 举报

13

主题

46

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 08:57:52 | 显示全部楼层
 
它们就像普通孔、通孔、螺纹孔和Auto cad mechanical可以在俯视图中制作的孔。在这个孔的中心,我想要一个层中的点,因为等离子切割程序可以读取这些点,这就是为什么我要问这个问题。
 
埃尔弗特
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 09:02:43 | 显示全部楼层
 
问题是它们是什么类型的Autocad图元?插入、代理实体、三维实体。LIST命令可能会启发我们-大卫
回复

使用道具 举报

13

主题

46

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 09:11:11 | 显示全部楼层
 
我只能说它们在AutoCad mechanical中被称为STDPART2D。比如,如果你做一个圈,然后把它列出来,它叫做圈。
 
埃尔弗特
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 09:17:23 | 显示全部楼层
4DCES,
 
请阅读代码发布指南并编辑您的帖子。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 08:19 , Processed in 0.357348 second(s), 72 queries .

© 2020-2025 乐筑天下

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