明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8235|回复: 42

[提问] 新人求助,关于框选连线,麻烦各位老师帮忙

[复制链接]
发表于 2014-8-4 22:45:46 | 显示全部楼层 |阅读模式
本帖最后由 龙幽小蛮 于 2014-8-5 07:36 编辑

在论坛里找到许多自动连线的程序,能否能不能有老师帮我改一下,最近的每24个左右连成一串(不超过26),然后线通过块的时候最好能断开,先谢过各位老师,让我也学习下LISP。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2022-6-21 15:39:00 | 显示全部楼层
(defun c:tt(/ os ss pl p1 p2)
  (setq os (getvar 'osmode))
  (setvar 'osmode 0)
  (setq ss (ssget '((0 . "insert"))))
  (if ss
    (progn
      (setq pl (GXL-GETSSBOX ss)
            p1 (car pl)
            p2 (cadr pl)
            ss (GXL-SEL-SS->LIST ss)
            )
    ;;;此处画一个圆,图块投影到园上排序
      (command "_pline" p1 "a" "s" (list (car p1) (cadr p2)) p2 "s" (list (car p2) (cadr p1)) p1 "")
      (setq en (entlast))
      (setq ss (vl-sort ss '(lambda (a b)
                           (< (vlax-curve-getParamAtPoint en (vlax-curve-getclosestpointto en (gxl-dxf a 10)))
                              (vlax-curve-getParamAtPoint en (vlax-curve-getclosestpointto en (gxl-dxf b 10)))
                              )
                           )
                        )
            )
        (command "_pline")
        (mapcar 'command (mapcar '(lambda (X) (gxl-dxf x 10)) ss))
      (command "")
      (entdel en)
      )
    )
  (setvar 'osmode os)
  (princ)
  )
;; gxl-GetssBox 取得选择集的实体外矩形框
(defun gxl-GetssBox        (ss / maxpt maxptlst minpt minptlst obj x ss1)
  (setq ss1 (gxl-Sel-SS->List ss))
  (foreach x ss1
    (setq obj (vlax-ename->vla-object x))
    ;(setq minPt (vlax-make-safearray vlax-vbdouble '(0 . 2)))
    ;(setq maxPt (vlax-make-safearray vlax-vbdouble '(0 . 2)))
    (vla-GetBoundingBox Obj 'minpt 'maxpt) ; 得到包围框
    (setq minPt (vlax-safearray->list minPt))
    (setq maxPt (vlax-safearray->list maxPt))
    (setq minPtlst (append minPtlst (list minPt)))
    (setq maxPtlst (append maxPtlst (list maxPt)))
  ) ;_ 结束foreach
  (setq        minPt (list (apply 'min (mapcar 'car minPtlst))
                    (apply 'min (mapcar 'cadr minPtlst))
                    0
              ) ;_ 结束list
  ) ;_ 结束setq
  (setq        maxPt (list (apply 'max (mapcar 'car maxPtlst))
                    (apply 'max (mapcar 'cadr maxPtlst))
                    0
              ) ;_ 结束list
  ) ;_ 结束setq
  ;(command "rectang" minPt maxPt)
(list minPt maxPt)
) ;_ 结束defun
(defun gxl-Sel-SS->List        (ss / i s )
    (if ss
  (repeat (setq i (sslength ss))
  (setq s (cons (ssname ss (setq i (1- i))) s))
    )
    )
)
;;;==================================================================
;;;(gxl-dxf ent i )取出像素索引i对应的值
;;;==================================================================
  (defun gxl-dxf (ent i)
    (cond ((= (type ent) 'ename)
            (cdr (assoc i (entget ent)))
             )
          ((= (type ent) 'list)
           (cdr (assoc i ent))
           )
    ) ;_ if
  )





试试这看看
忘记是哪位大师做的,取之明经cad,用之明经
回复 支持 1 反对 0

使用道具 举报

发表于 2024-4-8 08:27:58 | 显示全部楼层
song宋_74729 发表于 2022-6-21 15:39
(defun c:tt(/ os ss pl p1 p2)
  (setq os (getvar 'osmode))
  (setvar 'osmode 0)

贱人里也有这个,原创哪位就不清楚了。
发表于 2014-8-5 08:54:10 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2014-8-5 21:38 编辑

游客,本帖隐藏的内容需要发帖数高于 1 才可浏览,你当前发帖数只有 0
 楼主| 发表于 2014-8-5 09:16:12 | 显示全部楼层
本帖最后由 龙幽小蛮 于 2014-8-5 09:21 编辑
ZZXXQQ 发表于 2014-8-5 08:54
[/post]

咦,谢谢这位老师,我说明大概不清楚,只是24个块框选连线,不是指定一个块.程序貌似有问题,"参数类型错误: lentityp (0 (23575.1 42457.9 0.0))",这是有问题吧?谢谢,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2014-8-5 09:29:10 | 显示全部楼层
本帖最后由 王与韩1 于 2014-8-5 16:29 编辑

一看就是同行啊,顶这个问题.不过ZZXXQQ大师的程序我用不了,又能顺便学习了~
 楼主| 发表于 2014-8-5 18:03:51 | 显示全部楼层
自顶~来点人吧
发表于 2014-8-5 21:04:52 | 显示全部楼层
本帖最后由 xyp1964 于 2024-3-11 22:54 编辑


;; 需要e派工具箱的支持,慎用!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2014-8-5 21:42:09 | 显示全部楼层
xyp1964 发表于 2014-8-5 21:04

额,没两个币,怎么得啊T_T
 楼主| 发表于 2014-8-5 22:16:37 | 显示全部楼层
ZZXXQQ 发表于 2014-8-5 08:54
[/post]

老师,回家不知道怎么又能用了,可是怎么连线连不完啊。5个连3个,4个连2个...麻烦老师看下嘛

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2014-8-5 22:25:49 | 显示全部楼层
本帖最后由 王与韩1 于 2014-8-5 22:41 编辑
xyp1964 发表于 2014-8-5 21:04

院长,有E派工具箱怎么还是说“no function definition: XYP-CMDLA0”...
 楼主| 发表于 2014-8-6 08:53:33 | 显示全部楼层
自顶,ZZXXQQ老师和xyp1964老师再来帮帮吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 03:04 , Processed in 0.218244 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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