乐筑天下

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

[编程交流] 将块插入到多线端点

[复制链接]

13

主题

61

帖子

48

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 10:22:26 | 显示全部楼层 |阅读模式
因此,专门处理mlines。。我希望只在端点插入代码中指定的块。。李帮了大忙。。实际上,就在今天,我用下面的方法在除了端点之外的所有地方插入一个块,这非常适合插入FTG!这个潜在的代码可以帮助我们在我们用多线绘制的所有梁/HDR的末端插入一个点荷载/#的螺柱(一个4“实心方形块)。这将是一个很大的帮助,因为我一个人一天就完成了大约200个。这可能需要点击3下即可完成。祈祷吧。感谢任何帮助。
  1. ---------
  2. ;;-----------------=={ Block At Vertices }==------------------;;
  3. ;;                                                            ;;
  4. ;;  Inserts a Block at each vertex of selected Polylines,     ;;
  5. ;;  with the exclusion of start/end vertices                  ;;
  6. ;;------------------------------------------------------------;;
  7. ;;  Author: Lee McDonnell, 2010                               ;;
  8. ;;                                                            ;;
  9. ;;  Copyright © 2010 by Lee McDonnell, All Rights Reserved.   ;;
  10. ;;  Contact: Lee Mac @ TheSwamp.org, CADTutor.net             ;;
  11. ;;------------------------------------------------------------;;
  12. (defun c:BlockAtVertices ( / *error* _StartUndo _EndUndo _Insert _AngleAtParam doc block ss )
  13. (vl-load-com)
  14. ;; © Lee Mac 2010
  15. (setq block "endtick.dwg") ;; << Block Name
  16. (defun *error* ( msg )
  17.    (and doc (_EndUndo doc))
  18.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  19.        (princ (strcat "\n** Error: " msg " **")))
  20.    (princ)
  21. )
  22. (defun _StartUndo ( doc ) (_EndUndo doc)
  23.    (vla-StartUndoMark doc)
  24. )
  25. (defun _EndUndo ( doc )
  26.    (if (= 8 (logand 8 (getvar 'UNDOCTL)))
  27.      (vla-EndUndoMark doc)
  28.    )
  29. )
  30. (defun _Insert ( block point rotation )
  31.    (entmakex
  32.      (list
  33.        (cons 0 "INSERT")
  34.        (cons 2  block)
  35.        (cons 10 point)
  36.        (cons 50 rotation)
  37.      )
  38.    )
  39. )
  40. (defun _AngleatParam ( entity param )
  41.    (angle '(0. 0. 0.) (vlax-curve-getFirstDeriv entity param))
  42. )      
  43. (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  44. (cond
  45.    ( (= 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (getvar 'CLAYER))))))
  46.      (princ "\n** Current Layer Locked **")
  47.    )
  48.    ( (not
  49.        (or
  50.          (and (tblsearch "BLOCK" (vl-filename-base block))
  51.            (setq block (vl-filename-base block))
  52.          )
  53.          (and
  54.            (setq block
  55.              (findfile
  56.                (strcat block
  57.                  (if (eq "" (vl-filename-extension block)) ".dwg" "")
  58.                )
  59.              )
  60.            )
  61.            (
  62.              (lambda ( / ocm )
  63.                (setq ocm (getvar 'CMDECHO)) (setvar 'CMDECHO 0)
  64.                (command "_.-insert" block) (command)
  65.                (setvar 'CMDECHO ocm)
  66.                
  67.                (tblsearch "BLOCK" (setq block (vl-filename-base block)))
  68.              )
  69.            )
  70.          )
  71.        )
  72.      )
  73.      (princ "\n** Block not Found **")
  74.    )
  75.    ( (not (setq ss (ssget '((0 . "*POLYLINE")))))
  76.      (princ "\n*Cancel*")
  77.    )
  78.    (t
  79.      (_StartUndo doc)
  80.    
  81.      (
  82.        (lambda ( i / e )
  83.          (while (setq e (ssname ss (setq i (1+ i))))
  84.            (
  85.              (lambda ( param end )
  86.                (while (< (setq param (1+ param)) end)
  87.                  (_Insert block (vlax-curve-getPointatParam e param) (_AngleAtParam e param))
  88.                )
  89.              )
  90.              (vlax-curve-getStartParam e) (vlax-curve-getEndParam e)
  91.            )
  92.          )
  93.        )
  94.        -1
  95.      )
  96.      (_EndUndo doc)
  97.    )
  98. )
  99. (princ)
  100. )
  101. ---------

 
阅读第5页中的文章。“那很有趣。”议论哈哈哈
 
谢谢李!尝试一下,没有报告任何错误,尽管块似乎没有出现。希望能想出点什么。。如果必要的话,我可以引爆它们?不是最首选的方法,但肯定是一种选择。。一如既往,非常感谢。
回复

使用道具 举报

13

主题

61

帖子

48

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 10:31:33 | 显示全部楼层
我完全忘记了这个线程,有充分的理由,发布的代码是草率的垃圾。
 
http://www.cadtutor.net/forum/showthread.php?46891-在选定多边形的每个顶点插入一个点
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:32:19 | 显示全部楼层
 
确保检查代码顶部的块名称。我将它设置为一个块,用于测试。它可能在命令行中说“Block not found”。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:39:30 | 显示全部楼层
不,我是听说过的。。当我在处理它时,我删除了代码末尾的以下代码片段。。它将插入块,同样就在顶点处。。所以它是在识别障碍。。
 
  1. (defun c:aaa ()
  2.    (vl-load-com)
  3.    (setq *model-space*
  4.           (vla-get-modelspace
  5.              (vla-get-activedocument
  6.                 (vlax-get-acad-object))))
  7.    (setq obj (vlax-ename->vla-object (car (entsel))))
  8.    (setq c (vlax-get obj "Coordinates") i 0)
  9.    (repeat (/ (length c) 3)
  10.      (setq x (nth i c) y (nth (1+ i) c) z (nth (+ 2 i) c))
  11.      (vla-addtext *model-space* (rtos z 2) (vlax-3d-point (list x y 0.0)) 3.0)
  12.      (setq i (+ i 3))
  13.    )
  14.    (princ)
  15. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:43:47 | 显示全部楼层
对我来说似乎很有效——请记住,它忽略了MLine的端点。
回复

使用道具 举报

13

主题

61

帖子

48

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 10:48:42 | 显示全部楼层
哈哈,你帮我太多了!只有端点有什么办法吗?我发布的这些参考代码与昨天的代码非常相似。。可以看到混乱。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:51:29 | 显示全部楼层
[code]-----------------=={Block At EndPoints}==----------------;;;;在多段线的起点/终点插入块;;;;或多行;;;;------------------------------------------------------------;;;;作者:李·麦克唐纳,2010;;;;版权所有©2010 Lee McDonnell,保留所有权利;;;;联系人:Lee Mac@TheSwamp。组织,CADTutor。net;;;;-----------------------------------------------------------------;;(defun c:BlockAtEnds(/*error*\u StartUndo \u EndUndo \u Insert \u MAssoc doc block ss)(vl load com);;©Lee Mac 2010(setq block“endtick.dwg”);;
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:58:28 | 显示全部楼层
帮了这么多,谢谢
回复

使用道具 举报

13

主题

61

帖子

48

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 11:00:09 | 显示全部楼层
不客气。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:04:05 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 21:34 , Processed in 0.396818 second(s), 72 queries .

© 2020-2025 乐筑天下

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