SLdesign ( 三领设计) V3.0的填充岁月
本帖最后由 尘缘一生 于 2024-11-25 11:53 编辑一:首先CAD原始填充
如果直接用CAD的,无意麻烦多多,主要是慢,需要人为干预过多。
二:开始三领做了一个SLD填充
先做了各自SLD,然后整合到一个slb库
结果如下:
问题来了:这个是死的,不能任意的扩展。
三:后来为了能自由扩展,作了PAT文件自由增删
实现办法:做一个存PAT文件的目录,里面可以自由增加,
当点击这个填充时候,把此文件拷贝到支持路径的第二个,即可填充有效,
后续继续工作-->如图所示
问题又来了:这个玩意不显示图,谁能明了啥图案呢?
四:考虑到LISP图库,不是可以自由扩展,还可以显示吗?试了试,成功
实现方法:图库作一个填充,点击插入,程序提取其填充定义,生成*.PAT
把它拷贝支持路径,-->后续继续工作
提取填充定义函数
;;提取填充图案数据-----(一级)------
;;来源,明经 MODIFY BY SLdesign(三领)QQ:15290049
;;nam Hatch Enametscale 公制转换的系数
(defun mkpatdata (namtscale / hpname obj scale rot enl newpatdata ang x y dx dy data n l k strdata basex basey)
;坐标绕Z轴顺时针旋转角度
(defun rotz (ang x y / an)
(setq an (- ang))
(mapcar '(lambda (r) (apply '+ (mapcar '* r (list x y))))
(list (list (cos an) (- (sin an)))
(list (sin an) (cos an))
)
)
)
;;------------------
(setq hpname (dxf1 nam 2)) ;图案名称
(setq
enl (entget nam)
enl (member (assoc 53 enl) enl)
obj (en2obj nam)
scale (vla-get-PatternScale obj) ;填充比例
rot (vla-get-PatternAngle obj) ;填充角度
)
(setq newpatdata
(list
(strcat "*" (strcase hpname))
(strcat "*" hpname (slmsg ",三领图案提取生成" ",烩瓜矗ネΘ" ",SLdesign pattern extraction and generation") hpname)
)
) ;_ 储存填充数据表
(while (= 53 (caar enl))
(setq
ang (cdar enl) ;53 图案直线角度
enl (cdr enl)
)
(setq
x (dxf1 enl 43) ;图案直线基点,X 分量
y (dxf1 enl 44) ;图案直线基点,Y 分量
dx (dxf1 enl 45) ;图案直线偏移,X 分量
dy (dxf1 enl 46) ;图案直线偏移,Y 分量
)
(if (null basex) (setq basex x basey y))
(setq x (- x basex) y (- y basey)) ;以第一条填充线为图案定义原点
(mapcar 'set (list 'dx 'dy) (rotz ang dx dy))
(mapcar 'set (list 'x 'y) (rotz rot x y))
(setq data (list x y dx dy))
(setq enl (member (assoc 79 enl) enl))
(setqn (cdar enl) ;虚线长度项目数
enl (cdr enl)
)
(repeat n
(setq l (car enl) ;虚线长度
enl (cdr enl)
)
(setq data (append data (list (cdr l))))
)
(setq k 12) ;_ 数字取位精度
;;图案定义最长不超过80个字符
(while (> (strlen (setq strdata
(apply
'strcat
(cons
(rtos (sl-r2d (- ang rot)) 2 k)
(mapcar '(lambda (a) (strcat "," (rtos (* tscale (/ a scale)) 2 k))) data)
)
)
)
)
80
)
(setq k (1- k))
)
(setq newpatdata (append newpatdata (list strdata)))
)
newpatdata
)
下面是图库作的填充的效果:
素材:
程序(阉割版,微修即是图库)
如此:既明了,又可以自由扩展了。唯一不满意之处的话,那就是,需要插入,虽然过程肉眼看不到。
填充是设计人员无法逃避的,三领将继续深思,各位还有更好的办法吗?只需原理告知即可。
五:对于SLB,*pat文件自动显示缩略图,或SLD吧,程序没有,至少LISP没有,本坛亦没有,很是遗憾,否则,就彻底完美了。何须如此费劲。
所以我给桌子公司起个外号:“2BCAD".
谢谢分享。。 谢谢分享,不知能不能独立使用这个插件 moranyuyan 发表于 2024-11-25 09:00
谢谢分享,不知能不能独立使用这个插件
这部分作为公共资源,基本都不加密的,三领基本上免费了,由于集成问题,可能哪里加密点遗漏。
感谢分享。 感谢分享,尘总666 还有制作填充,参数填充
填充有个比列问题,在不同版本的CAD上还不一致,不知道有没有解决好。 感谢分享。。。
页:
[1]