明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 123|回复: 7

[经验] SLdesign ( 三领设计) V3.0的填充岁月

[复制链接]
发表于 4 小时前 | 显示全部楼层 |阅读模式
本帖最后由 尘缘一生 于 2024-11-25 11:53 编辑

一:首先CAD原始填充



如果直接用CAD的,无意麻烦多多,主要是慢,需要人为干预过多。

二:开始三领做了一个SLD填充
先做了各自SLD,然后整合到一个slb库



结果如下:

问题来了:这个是死的,不能任意的扩展。
三:后来为了能自由扩展,作了PAT文件自由增删
实现办法:做一个存PAT文件的目录,里面可以自由增加,
当点击这个填充时候,把此文件拷贝到支持路径的第二个,即可填充有效,
后续继续工作-->如图所示

问题又来了:这个玩意不显示图,谁能明了啥图案呢?
四:考虑到LISP图库,不是可以自由扩展,还可以显示吗?试了试,成功
实现方法:图库作一个填充,点击插入,程序提取其填充定义,生成*.PAT
把它拷贝支持路径,-->后续继续工作
提取填充定义函数
  1. ;;提取填充图案数据-----(一级)------
  2. ;;来源,明经 MODIFY BY SLdesign(三领)  QQ:15290049
  3. ;;nam Hatch Ename  tscale 公制转换的系数
  4. (defun mkpatdata (nam  tscale / hpname obj scale rot enl newpatdata ang x y dx dy data n l k strdata basex basey)
  5.   ;坐标绕Z轴顺时针旋转角度
  6.   (defun rotz (ang x y / an)
  7.     (setq an (- ang))
  8.     (mapcar '(lambda (r) (apply '+ (mapcar '* r (list x y))))
  9.       (list (list (cos an) (- (sin an)))
  10.         (list (sin an) (cos an))
  11.       )
  12.     )
  13.   )
  14.   ;;------------------
  15.   (setq hpname (dxf1 nam 2)) ;图案名称
  16.   (setq
  17.     enl (entget nam)
  18.     enl (member (assoc 53 enl) enl)
  19.     obj (en2obj nam)
  20.     scale (vla-get-PatternScale obj) ;填充比例
  21.     rot (vla-get-PatternAngle obj) ;填充角度
  22.   )
  23.   (setq newpatdata
  24.     (list
  25.       (strcat "*" (strcase hpname))
  26.       (strcat "*" hpname (slmsg ",三领图案提取生成" ",烩瓜矗ネΘ" ",SLdesign pattern extraction and generation") hpname)
  27.     )
  28.   ) ;_ 储存填充数据表
  29.   (while (= 53 (caar enl))
  30.     (setq
  31.       ang (cdar enl) ;53 图案直线角度
  32.       enl (cdr enl)
  33.     )
  34.     (setq
  35.       x (dxf1 enl 43) ;图案直线基点,X 分量
  36.       y (dxf1 enl 44) ;图案直线基点,Y 分量
  37.       dx (dxf1 enl 45) ;图案直线偏移,X 分量
  38.       dy (dxf1 enl 46) ;图案直线偏移,Y 分量
  39.     )
  40.     (if (null basex) (setq basex x basey y))
  41.     (setq x (- x basex) y (- y basey)) ;以第一条填充线为图案定义原点
  42.     (mapcar 'set (list 'dx 'dy) (rotz ang dx dy))
  43.     (mapcar 'set (list 'x 'y) (rotz rot x y))
  44.     (setq data (list x y dx dy))
  45.     (setq enl (member (assoc 79 enl) enl))
  46.     (setq  n (cdar enl) ;虚线长度项目数
  47.       enl (cdr enl)
  48.     )
  49.     (repeat n
  50.       (setq l (car enl) ;虚线长度
  51.         enl (cdr enl)
  52.       )
  53.       (setq data (append data (list (cdr l))))
  54.     )
  55.     (setq k 12) ;_ 数字取位精度
  56.     ;;图案定义最长不超过80个字符
  57.     (while (> (strlen (setq strdata
  58.                         (apply
  59.                           'strcat
  60.                           (cons
  61.                             (rtos (sl-r2d (- ang rot)) 2 k)
  62.                             (mapcar '(lambda (a) (strcat "," (rtos (* tscale (/ a scale)) 2 k))) data)
  63.                           )
  64.                         )
  65.                       )
  66.               )
  67.              80
  68.            )
  69.       (setq k (1- k))
  70.     )
  71.     (setq newpatdata (append newpatdata (list strdata)))
  72.   )
  73.   newpatdata
  74. )

下面是图库作的填充的效果:

素材:

程序(阉割版,微修即是图库)


如此:既明了,又可以自由扩展了。唯一不满意之处的话,那就是,需要插入,虽然过程肉眼看不到。
填充是设计人员无法逃避的,三领将继续深思,各位还有更好的办法吗?只需原理告知即可。

五:对于SLB,*pat文件自动显示缩略图,或SLD吧,程序没有,至少LISP没有,本坛亦没有,很是遗憾,否则,就彻底完美了。何须如此费劲。
所以我给桌子公司起个外号:“2BCAD".

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
zhoupeng220 + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
谢谢分享,不知能不能独立使用这个插件
回复 支持 反对

使用道具 举报

 楼主| 发表于 3 小时前 | 显示全部楼层
moranyuyan 发表于 2024-11-25 09:00
谢谢分享,不知能不能独立使用这个插件

这部分作为公共资源,基本都不加密的,三领基本上免费了,由于集成问题,可能哪里加密点遗漏。
回复 支持 反对

使用道具 举报

发表于 2 小时前 | 显示全部楼层
感谢分享,尘总666
回复 支持 反对

使用道具 举报

发表于 1 小时前 | 显示全部楼层
还有制作填充,参数填充

点评

嗯,程序整合有,调用的部分,继承填充,即可省去了比例等问题了。  发表于 半小时前
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 12:28 , Processed in 0.168316 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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