明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 275437962

[讨论] autolisp如何实现自动插入块(利用直线)

[复制链接]
发表于 2013-12-28 20:57:36 | 显示全部楼层
275437962 发表于 2013-12-28 20:55
二是“让新插入块的图层和它对应的直线所在图层一致,并让所有插入块的颜色改成bylayer(即随层)”,这个问 ...

你提供块吧...不知道你的块什么情况...
回复

使用道具 举报

发表于 2013-12-28 21:09:58 | 显示全部楼层
本帖最后由 q3_2006 于 2013-12-29 13:20 编辑

代码删除...
回复

使用道具 举报

发表于 2013-12-28 21:11:15 | 显示全部楼层
直线长度\角度\虚拟圆半径,都由你自己输入...想多少是多少...
回复

使用道具 举报

发表于 2013-12-28 21:18:45 | 显示全部楼层
275437962 发表于 2013-12-28 20:55
二是“让新插入块的图层和它对应的直线所在图层一致,并让所有插入块的颜色改成bylayer(即随层)”,这个问 ...

图里面没有你要插块呀....或者说下块名称??
回复

使用道具 举报

发表于 2013-12-28 21:33:05 | 显示全部楼层
本帖最后由 q3_2006 于 2013-12-29 13:20 编辑

楼主人品太差...代码删除
回复

使用道具 举报

 楼主| 发表于 2013-12-29 12:12:00 | 显示全部楼层
275437962 发表于 2013-12-28 20:55
二是“让新插入块的图层和它对应的直线所在图层一致,并让所有插入块的颜色改成bylayer(即随层)”,这个问 ...

哪位朋友,把程序剩下的问题解决了,这个明经币都送给这个朋友!!!
回复

使用道具 举报

发表于 2013-12-29 12:21:46 | 显示全部楼层
本帖最后由 q3_2006 于 2013-12-29 14:16 编辑
275437962 发表于 2013-12-29 12:12
哪位朋友,把程序剩下的问题解决了,这个明经币都送给这个朋友!!!


没听说有谁缺这几个虚拟币的.....
回复

使用道具 举报

 楼主| 发表于 2013-12-29 13:50:06 | 显示全部楼层
q3_2006 发表于 2013-12-28 20:31
代码删除...

你的程序没有改好,还存在一些问题,结果你还要增加明经币,你觉得你这样子做如何,问题提了那么长时间,也不理视,难道你就为了那100个明经币吗,当然我尊重你的劳动成果!!!!
回复

使用道具 举报

发表于 2013-12-29 13:52:14 | 显示全部楼层
本帖最后由 q3_2006 于 2013-12-29 14:08 编辑
275437962 发表于 2013-12-29 13:50
你的程序没有改好,还存在一些问题,结果你还要增加明经币,你觉得你这样子做如何,问题提了那么长时间, ...
  1. (defun c:tt ( / a ang bnm e en i la len n pe pm ps pts ss sse ssl)
  2.         (vl-load-com)
  3.         (vl-cmdf "undo" "be")
  4.   (if (setq bnm (getstring "\输入块名:"))
  5.   (progn
  6.           (setq len (getdist "\n输入被替换直线的长度:"))
  7.           (setq ang (getangle "\n输入被替换直线的角度:"))
  8.           (setq r (getreal "\n输入虚拟圆的半径:"))
  9.           (setq ss (ssget '((0 . "line"))))
  10.    (setq i -1 ssl (ssadd))
  11.    (while (setq en (ssname ss (setq i (1+ i))))
  12.            (setq len1 (Vlax-Get (Vlax-Ename->Vla-Object en) 'Length )
  13.                    ang1 (Vlax-Get (Vlax-Ename->Vla-Object en) 'Angle )
  14.                               )
  15.            (if (and (= len1 len) (= ang1 ang))
  16.                    (ssadd en ssl)
  17.                    )
  18.            )
  19.                    (setq n -1)
  20.                    (while (setq e (ssname ssl (setq n (1+ n))))
  21.                            (progn
  22.                            (setq ps (Vlax-Get (Vlax-Ename->Vla-Object e) 'StartPoint )
  23.                            pe (Vlax-Get (Vlax-Ename->Vla-Object e) 'EndPoint )
  24.                            pm (mapcar '* '(0.5 0.5 0.5) (mapcar '+ ps pe))
  25.                           la (Vlax-Get (Vlax-Ename->Vla-Object e) 'Layer )
  26.                    )
  27.                    (command "circle" pm r)
  28.                    (setq a (entlast))
  29.                    (setq pts (divpts a 500))
  30.                    (setq sse (ssget "cp" pts))
  31.                    (command "erase" a sse "")
  32.                    (setvar "clayer" la)
  33.                    (command "-insert" bnm pm "" "" "")
  34.                    (vlax-for X
  35.      (vla-item (vla-get-blocks
  36.    (vla-get-activedocument (vlax-get-acad-object))
  37.         )
  38.         bnm
  39.      )
  40.     (setq el (cons (vlax-vla-object->ename X) el))
  41.   )
  42.   (mapcar '(lambda (x) (VLA-PUT-COLOR (Vlax-Ename->Vla-Object x) 0))el)
  43.                   
  44.                    )
  45.                    )
  46.            )
  47.    )
  48.    (command "_.regen")
  49.    (vl-cmdf "undo" "e")
  50. )
  51. (defun divpts (ename n / ename endparam i nparam pt ptlst startparam)
  52.   (setq startparam (vlax-curve-getstartparam ename)
  53. endparam (vlax-curve-getendparam ename)
  54. nparam (/ (- endparam startparam) n)
  55. i -1
  56. ptlst '()
  57.   )
  58.   (while (<= (setq i (1+ i))
  59.       n
  60.   )
  61.     (setq pt (vlax-curve-getpointatparam ename (* i nparam))
  62.    ptlst (cons pt ptlst)
  63.     )
  64.   )
  65.   (reverse ptlst)
  66. )

回复

使用道具 举报

发表于 2013-12-29 14:10:45 | 显示全部楼层
本帖最后由 q3_2006 于 2013-12-29 14:11 编辑

最终处理图 代码已经补上,请用最终版

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 20:00 , Processed in 0.185431 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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