明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6969|回复: 19

[源码] lisp-简单的填充图案生成

  [复制链接]
发表于 2015-3-17 21:36:49 | 显示全部楼层 |阅读模式
本帖最后由 荒野孤行 于 2016-4-15 23:40 编辑

关于填充图案的pat格式文件的使用说步骤:
(1)将生成的pat格式文件放到文件夹里并复制其所在文件夹的路径
(2)在CAD中输入命令“OP”,在选项→文件→支持文件搜索路径中点击“添加”,Ctrl+V粘贴到输入列中,点击下方确定,OK
(3)然后用CAD里自带的图案填充命令“H”,找到我们生成的pat文件,看效果吧。

源码如下:
(defun c:expat ()
  (princ "\n功能:自动生成无限长度延伸线的填充图案pat文件。")
  (setvar "cmdecho" 0)
  (vl-load-com)
  (setq nam "wdypat_extend")
  (setq        ffn (getfiled "指定文件存储路径及文件名"
                      nam
                      "pat"
                      1
            )
  )
  (setq nam (vl-filename-base ffn)) ;获取文件名
  (setq ff (open ffn "w"))
  (close ff)
(princ "\n选取曲线:")
  (setq userpoint (getpoint "\n请选取基准点"))
  (setq ss (ssget '((0 . "LINE"))))
  (setq offsetdis (getdist "\n请确定间距:"))
  (setq ff (open ffn "a"))
  (princ (strcat "*" nam "," "制作者-吴丁运\n") ff)
  (close ff)
  (setq i 0)
  (repeat (sslength ss)
    (setq entnam      (ssname ss i)
          endata
                      (entget entnam)
          start_point
                      (cdr (assoc 10 endata))
          end_point
                      (cdr (assoc 11 endata))
          ang
                      (/ (* (angle start_point end_point) 180.0) pi)
          inter
                      (inters start_point end_point userpoint (list 0 10.0) nil)
          x
                      (atof (rtos (- (car inter) (car userpoint)) 2 4))
          y
                      (atof (rtos (- (cadr inter) (cadr userpoint)) 2 4))
    )
    (setq ff (open ffn "a"))
    (princ ang ff)
    (princ "," ff)
    (princ x ff)
    (princ "," ff)
    (princ y ff)
    (princ ",0," ff)
    (princ offsetdis ff)
    (princ "\n" ff)
    (close ff)
    (setq i (1+ i))
  )
  (setq ff (open ffn "a"))
  (princ "*" ff)
  (close ff)
  (princ "\n提示:图案填充pat文件已生成!")
)

;|看了图案填充pat文件里面的数据,然后看了pat文件的编码规则,就像是将一个单元进行了两个不同方向的阵列,但是pat里面的数据是用垂直&平行阵列方向来记录的,将阵列与偏移的转换公式做出来,那编写生成更复杂的填充图案就完成了一大步。|;

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 淡定

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-5-21 20:49:13 | 显示全部楼层
支持,总会用到的。
发表于 2021-5-20 08:20:12 | 显示全部楼层
支持,总会用到的。
发表于 2021-1-21 01:06:35 | 显示全部楼层
顶起,支持大神
发表于 2015-3-17 22:13:58 | 显示全部楼层
此贴顶起来
发表于 2015-3-17 22:14:04 | 显示全部楼层
支持分享!
发表于 2015-3-17 22:16:19 | 显示全部楼层
支持,绘图填充的人应该挺有用的。
发表于 2015-3-18 08:26:56 | 显示全部楼层
实用功能,力挺楼主!
发表于 2015-3-18 08:27:50 | 显示全部楼层
支持,总会用到的。
发表于 2015-3-19 22:35:02 | 显示全部楼层
特别有用,但是复杂的图案就不行了
 楼主| 发表于 2015-3-24 18:59:43 | 显示全部楼层
egos 发表于 2015-3-19 22:35
特别有用,但是复杂的图案就不行了

我的数学功底差,公式变换不会做。
发表于 2016-6-26 07:42:14 | 显示全部楼层
支持分享!
发表于 2016-6-26 12:52:11 | 显示全部楼层
学习学习……。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 22:57 , Processed in 0.227198 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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