乐筑天下

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

[编程交流] entmake文本-不工作

[复制链接]

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:28:09 | 显示全部楼层
该解决方案也应该有效-请注意,这种方法将只考虑插入点,而不是文本实体的实际“正文”。
回复

使用道具 举报

4

主题

20

帖子

16

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 08:29:28 | 显示全部楼层
我还在等待,也许会出现一个更简单的想法。。。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:33:59 | 显示全部楼层
在此之前,您可以为上述解决方案之一编写代码,并将其发布到此处进行调试/评估(如果需要)。至少,这应该是一次很好的锻炼。
回复

使用道具 举报

4

主题

20

帖子

16

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 08:38:41 | 显示全部楼层
循环选择-围绕点-对于MSasu-请告诉我你的意见-如何改进。。。。等
 
  1. (defun c:ce (/ ss i en edxf point p1 p2 distsel sel j lst ssf ent lf)
  2. (setq distsel (getdist "\nDISTANTA SELECTIE :"))
  3. (princ "\nPUNCTE DE SELECTIE")
  4. (while (setq ss (ssget "_:S" '((0 . "POINT"))))
  5.    (setq i    0
  6.      en    (ssname ss i)
  7.      edxf    (entget en)
  8.      point    (cdr (assoc 10 edxf))
  9.      p1    (polar point (* 0.25 pi) (* 0.5 distsel))
  10.      p2    (polar point (* 1.25 pi) (* 0.5 distsel))
  11.      sel    (ssget "_C" p2 p1)
  12.      sel    (ssdel en sel)     ; pt indepartarea punctelor din selectie
  13.    )                    
  14.    (repeat (sslength sel)
  15.      (setq en1 (ssname sel i))
  16.      (setq pins (cdr (assoc 10 (entget en1))))
  17.      (if (> (distance pins point) (* 0.5 distsel))
  18.    (ssdel e1 sel)
  19.      ) ;_ end of if
  20.      (setq i (1+ i))
  21.    ) ;_ end of repeat
  22.    (setq lst (cons sel lst))
  23. ) ;_ end of while
  24. (setq i 0)
  25. (repeat (length lst)
  26.    (setq j 0)
  27.    (setq lst2 (nth i lst))
  28.    (repeat (sslength lst2)
  29.      (setq e (ssname lst2 j))
  30.      (setq lf (cons e lf))
  31.      (setq j (1+ j))
  32.    ) ;_ end of repeat
  33.    (setq i (1+ i))
  34. ) ;_ end of repeat
  35. (setq ssf (ssadd))
  36. (foreach ent lf (ssadd ent ssf))
  37. (sssetfirst nil ssf)
  38. (princ)
  39. );end defun
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:39:28 | 显示全部楼层
我会检查它;乍看之下,代码似乎有点长,但我喜欢这些消息/注释。为什么不在个人资料中填写位置字段?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:43:53 | 显示全部楼层
首先,这种方法确实无效;对于许多项目来说,这可能很耗时,最重要的是,它会错过一些项目。后者是因为基于DXF代码10的验证方法不可靠。例如,可以根据绘图感觉在选择集中包括或不包括直线,如果中心不在选择区域内,则不包括圆,对于文本或块等也是如此。别忘了你的选择模式是交叉的。
 
 
关于代码:
[列表]
  • 此行包含未定义的变量:
    [/列表]
    1. (ssdel [color=red]e1[/color] sel)

    [列表]
  • 您通过索引解析选择集(sel),该索引取从0到所述选择集大小的值;但同时从选择集中删除项目。这种方法可能会遇到超过选择集大小的索引,从而导致错误。您必须解析所述选择集的副本,或者在单独的解析中删除项目。
    [/列表]
    [列表]
  • 累积选择集的构建无效;您不需要构建一个已找到项的列表(稍后代码中未使用的列表,也不需要返回该列表)并在稍后对其进行解析以将内容添加到选择集-只需在一个步骤中完成。
    [/列表]
  • 回复

    使用道具 举报

    4

    主题

    20

    帖子

    16

    银币

    初来乍到

    Rank: 1

    铜币
    20
    发表于 2022-7-6 08:48:28 | 显示全部楼层
    另一次尝试。。。
    1. (defun c:ce (/ p r nr point un i lstp ss)
    2. (setq p (getpoint "\nPUNCT CENTRU :"))
    3. (setq r (getdist "\nDISTANTA SELECTIE :"))
    4. ;(setq nr (getint "\nNUMAR PUNCTE PE CERC :"))
    5. (setq nr 1000)
    6. (setq un (/ (* 2 pi) nr))
    7. (setq i 0)
    8. (repeat nr
    9.    (setq point (polar p (* i un) r))
    10.    (setq lstp (cons point lstp))
    11.    (setq i (1+ i))
    12. ) ;_ end of repeat
    13. (setq ss (ssget "_CP" lstp))
    14. (sssetfirst nil ss)
    15. (princ)
    16. ) ;_ end of defun
    回复

    使用道具 举报

    35

    主题

    2471

    帖子

    2447

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    174
    发表于 2022-7-6 08:51:49 | 显示全部楼层
    那好多了;我冒昧地对您的代码进行了一些优化:
    1. (defun c:ce ( / p r nr un lstp )
    2. (if (and (setq p (getpoint "\nPUNCT CENTRU :"))
    3.          (setq r (getdist "\nDISTANTA SELECTIE :")))
    4. (progn
    5.   (setq nr 1000
    6.         un 0.0)
    7.   (repeat nr
    8.    (setq lstp (cons (polar p (setq un (+ un (/ (* 2 pi) nr))) r)
    9.                     lstp))
    10.   ) ;_ end of repeat
    11.   (sssetfirst nil (ssget "_CP" lstp))
    12. )
    13. )
    14. (princ)
    15. ) ;_ end of defun
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-7-9 03:43 , Processed in 1.350477 second(s), 66 queries .

    © 2020-2025 乐筑天下

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