明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1435|回复: 27

[源码] 选择图形或者给定2点绘制挑空线

[复制链接]
发表于 2020-4-26 11:38 | 显示全部楼层 |阅读模式
本帖最后由 OooCcc 于 2020-10-15 11:16 编辑

日常绘图中,经常需要用到需要绘制挑空线;本人有点强迫症,希望绘制的所有挑空线都有一个统一的角点高度;所以编了个简单的lsp程序来完成这个过程。需要的朋友可以自己下载了试试,觉得命令名不合适的可以自行修改或者设置快捷命令。
[2020-10-15]
增加了绘制相应挑空线填充的功能,并将填充后的对象放入相应的填充图层中
-------------------------------------------------------------------------
1、更新了上一版绘制挑空线卡顿问题~
2、增加了挑空线图层检查并新建的功能
3、增加了绘制的挑空线放入对应图层的功能,绘制挑空线并放入相应图层的动作不会改变当前图层


本帖子中包含更多资源

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

x
发表于 2020-9-4 12:03 | 显示全部楼层
本帖最后由 G〆h 于 2020-9-15 17:01 编辑

(setq _opt (entsel "\n点选对象或右键框绘挑空线:"))
(cond   
    ((= (type _opt) 'LIST) ;选择实体
                实体操作
    )
    ((= _opt nil)
       (setq _minp (getpoint "\n第一个点:")
               _maxp (getcorner _minp "\n第二个点:")
     )

(setq loop t)
(while (and (setq code (grread T 8)) loop)
        (cond
                ((= (car code) 25)     
                        (princ "右键");右键
                )
                ((= (cadr code) 32)
                        (princ "空格")
                        (setq loop nil)
                );空格
                ((= (car code) 3)
                        (princ "左建")
                );左键
        )
)
  (setq _acad        (vlax-get-acad-object)
        _doc         (vla-get-activedocument _acad)
        _mspace      (vla-get-modelspace _doc)
        _tkLayerName "_tk_Layer"
        _tkLayer     nil
   )
    (setq xobj (Vlax-Ename->Vla-Object (car (entsel))))
    (setq HatchObj (vla-AddHatch _mspace acHatchPatternTypePredefined "SOLID" :vlax-true))
    (vla-appendouterloop HatchObj
      (vlax-safearray-fill
        (vlax-make-safearray
          vlax-vbobject
          (cons 0 (1- (length (list xobj))))
        )
        (list xobj)
      )
)

感谢楼主的代码,结合上述代码及主要思路,经过几天的努力,终于实现了上述思想。后期问题主要是点选对象时,对非矩形外的对象作用不大。

本帖子中包含更多资源

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

x
发表于 2020-9-4 11:01 | 显示全部楼层
OooCcc 发表于 2020-9-3 20:51
这个是可以实现的。。。等有空了我试试

建议改进以下几点:
①命令提示时,点选对象和画框操作应该交给CAD自动判断,提高效率。
②完成后,实现鼠标左键直接填充,右键为不填充

辛苦了!
 楼主| 发表于 2020-9-3 08:59 | 显示全部楼层
上善若水!@# 发表于 2020-9-2 19:44
随便加了个图层,有时候运行有点卡,有没有得优化一下
;|
  程序功能:根据选择的一个矩形或者2个角点 ...

这个运行有点卡的问题我也有。。。不知道啥原因啊。。。。
 楼主| 发表于 2020-4-26 11:39 | 显示全部楼层
新人不容易,下载的朋友记得回复下帖子。谢谢!
发表于 2020-4-26 16:12 | 显示全部楼层
谢谢! OooCcc 分享程序!!!!!
 楼主| 发表于 2020-4-27 09:40 | 显示全部楼层
自己顶顶哈~~个人以为还是挺有用的哈。。。
发表于 2020-4-27 15:48 | 显示全部楼层
不错不错啊!谢谢谢!
 楼主| 发表于 2020-4-27 19:50 | 显示全部楼层
谢谢支持!~~大家可以把日常用cad中想到的有必要用lisp实现的想法贴出来~~有空的时候大家探讨实现
发表于 2020-4-28 12:42 | 显示全部楼层
这个能否加图层,就画出来那个线是挑空线的图层
发表于 2020-4-28 20:57 | 显示全部楼层
本帖最后由 zjsru_18_505 于 2020-4-28 21:10 编辑

不知道怎么删除回复
 楼主| 发表于 2020-4-29 13:13 | 显示全部楼层
zjsru_18_505 发表于 2020-4-28 20:57
不知道怎么删除回复

你要删除哪里的回复?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 19:09 , Processed in 0.318697 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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