明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9040|回复: 24

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

[复制链接]
发表于 2013-12-27 22:08:53 | 显示全部楼层 |阅读模式
110明经币
本帖最后由 275437962 于 2013-12-28 20:59 编辑

链接地址: http://bbs.mjtd.com/thread-108788-1-1.html

最佳答案

查看完整内容

代码删除...
发表于 2013-12-27 22:08:54 | 显示全部楼层
本帖最后由 q3_2006 于 2013-12-29 13:21 编辑

代码删除...
回复

使用道具 举报

 楼主| 发表于 2013-12-28 16:48:49 | 显示全部楼层
这个问题为什么没有人讨论,其实这个问题才具有重要意义,因为它可以大大减少工作量,解决这个问题的人很了不起哦!!贡献大大的!!其实我悬赏解决问题不是目的,希望解决问题帮助了大家,真正解决了问题,不是能用金钱衡量的,那100个明经币只是象征性的!!!!呵呵,期盼能有高人相助!!!
回复

使用道具 举报

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

代码删除...
回复

使用道具 举报

发表于 2013-12-28 18:13:30 | 显示全部楼层
这是演示图

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2013-12-28 20:03:11 | 显示全部楼层
本帖最后由 275437962 于 2013-12-28 23:34 编辑
q3_2006 发表于 2013-12-28 18:10



像下面的程序一样,一是图块直接输入名称,不采用选择的方式;二是“让新插入块的图层和它对应的直线所在图层一致,并让所有插入块的颜色改成bylayer(即随层)”,目前程序插入的块都在0层,这个问题很重要。
(defun c:tt ()
  (setvar "CMDECHO" 0)
  (if (and (setq bnm (getstring "\n图块名 :"))
           (/= bnm "")
           (princ "\n选择圆 :")
           (setq ss (ssget '((0 . "CIRCLE")(40 . xxxx))))) ;;xxxx换成你需要的圆的半径
  (progn
   (setq i 0)
   (repeat (sslength ss)
    (setq pc (cdr(assoc 10 (entget (ssname ss i)))))
    (setq ely (cdr(assoc 8 (entget (ssname ss i)))))
    (command "-insert" bnm pc "" "" "")
    (command "change" (entlast) "" "p" "la" ely "co" "byl" "")
    (setq i (1+ i))
   )
  ;; (command ".erase" ss "");删去此句就保留圆
  ))
  (setvar "CMDECHO" 1)
  (princ)
)

回复

使用道具 举报

发表于 2013-12-28 20:36:19 | 显示全部楼层
继续上演示

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2013-12-28 20:39:03 | 显示全部楼层
另外...100币...亲似乎没有哟...
回复

使用道具 举报

发表于 2013-12-28 20:46:12 | 显示全部楼层
q3_2006 发表于 2013-12-28 20:39
另外...100币...亲似乎没有哟...

                                          
回复

使用道具 举报

 楼主| 发表于 2013-12-28 20:55:15 | 显示全部楼层
本帖最后由 275437962 于 2013-12-29 11:57 编辑
q3_2006 发表于 2013-12-28 20:31

二是“让新插入块的图层和它对应的直线所在图层一致,并让所有插入块的颜色改成bylayer(即随层)”,这个问题还是没有解决,现在程序是新插入块的图层是发生变化了,不是0层,但所有新插入的块的图层对应的应该是案例数据中黄色线所在的图层,现在新插入块的图层对应的是红色的线所在的图层(你可以用程序执行一下下面的“案例数据.dwg”)

还有一个问题,我测试时发现的,如果直线的长度不是整的,而是,比如0.75或是0.075,那么这时候直线是不能被选中插入块的,我想确认,直线长度和角度,还有虚拟圆的半径,它们的精确程度是多少。是0.1,还是0.01


还有就是那个角度条件 ,不起作用,如给成90度,根本就不能达到要求。


这个问题没有人解答吗,其实这几个问题,是至关重要的,如果不能得到解决,这个程序就半途而废了!!!

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 19:59 , Processed in 0.207116 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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