明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2274|回复: 5

多段线节点插块

[复制链接]
发表于 2013-6-5 13:40 | 显示全部楼层 |阅读模式
1明经币
  1. (defun c:bpl ( / _block _ang b e i j p s )   
  2.     (if
  3.         (and
  4.             (setq b (LM:ssget "\nSelect Block to Align: " '("_+.:E:S" ((0 . "INSERT")))))
  5.             (setq s (LM:ssget "\nSelect LWPolylines: "    '(((0 . "LWPOLYLINE")))))
  6.         )
  7.         (progn
  8.             (eval
  9.                 (list 'defun '_block '( p r )
  10.                     (list 'entmake
  11.                         (list 'list
  12.                           ''(0 . "INSERT")
  13.                            '(cons 10 p)
  14.                            '(cons 50 r)
  15.                             (list 'quote (assoc 2 (entget (ssname b 0))))
  16.                         )
  17.                     )
  18.                 )
  19.             )
  20.             (defun _ang ( e p )
  21.                 (apply 'atan (cdr (reverse (vlax-curve-getfirstderiv e p))))
  22.             )
  23.             (repeat (setq i (sslength s))
  24.                 (setq e (ssname s (setq i (1- i))))
  25.                 (_block (vlax-curve-getstartpoint e) (_ang e 0))
  26.                 (_block (vlax-curve-getendpoint   e) (+ pi (_ang e (vlax-curve-getendparam e))))
  27.                 (repeat (fix (setq j (1- (vlax-curve-getendparam e))))
  28.                     (_block (setq p (vlax-curve-getpointatparam e j)) (_ang e j))
  29.                     (_block p (+ pi (_ang e (setq j (1- j)))))
  30.                 )
  31.             )
  32.         )
  33.     )
  34.     (princ)
  35. )

  36. ;; ssget  -  Lee Mac
  37. ;; A wrapper for the ssget function to permit the use of a custom selection prompt
  38. ;;
  39. ;; Arguments:
  40. ;; msg    - selection prompt
  41. ;; params - list of ssget arguments

  42. (defun LM:ssget ( msg params / sel )
  43.     (princ msg)
  44.     (setvar 'nomutt 1)
  45.     (setq sel (vl-catch-all-apply 'ssget params))
  46.     (setvar 'nomutt 0)
  47.     (if (not (vl-catch-all-error-p sel)) sel)
  48. )

  49. (vl-load-com)
  50. (princ)
上面代码为多段线节点插块,但是效果不是我要的,下图是我想要的效果,求帮忙改下代码。


附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2013-6-5 13:47 | 显示全部楼层
哪位大神知道怎么把一条多义线各段的x、y方向的增量读出来的lisp程序吗
回复

使用道具 举报

 楼主| 发表于 2014-4-17 15:44 | 显示全部楼层
工作中常用到,顶起!求解决
回复

使用道具 举报

发表于 2015-7-13 22:36 来自手机 | 显示全部楼层
我也想要这个程序
回复

使用道具 举报

发表于 2015-7-14 16:00 | 显示全部楼层
此程序是明经下载的,原作者是谁记不清了

(defun c:dj ()
   
     (setq i     0)
     (setq os    (getvar "osmode"))
     (setq pline (car (entsel)) )
     (setq ent   (entget pline))
     (setq ent1  ent)
      (repeat  (cdr(assoc 90 ent) )   
          (setvar "osmode" 0)
          (setq p0   (cdr (assoc 10 ent1) )
                ent1 (vl-remove (assoc 10 ent1)  ent1)
          )
          (ins)
          (setq i (1+ i))   
     )  
     (princ) (setvar "osmode" os)
)

(defun ins ()
   (COMMAND "-insert"  "sk" p0 "1" "1" "0" );sk为块名
   (princ)
)
回复

使用道具 举报

发表于 2019-9-6 18:11 | 显示全部楼层
怎么用不了啊
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-20 11:00 , Processed in 1.753409 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表