本帖最后由 zhoupeng220 于 2024-8-22 09:18 编辑
- (defun c:rectc(/ tc_e tc_vlae tc_name tc_scle tc_ang tc_la tc_col pt1 pt2)
- (vl-load-com)
- (setvar "cmdecho" 0)
- (setq tc_e(car(entsel"\n選擇填充源圖案:")))
- (setq tc_vlae (vlax-ename->vla-object tc_e);名稱
- tc_name (vla-get-patternname tc_vlae);圖案名稱
- tc_scle (vla-get-patternscale tc_vlae);比例
- tc_ang (* 180(/ (vla-get-patternangle tc_vlae) pi));角度
- tc_la (vla-get-layer tc_vlae);圖層
- tc_col (vla-get-color tc_vlae);顏色
- tc_ltype (vla-get-linetype tc_vlae));线型
-
- (setq pt1 (getpoint "\n指定矩形的兩點:"))
- (setq pt2 (getcorner pt1))
- (command "rectang" pt1 pt2)
- ;(setq pt1 (entlast)) ;刪除矩形程式碼
- ;(if (= tc_col 256)(setq tc_col (cdr(assoc 62(entget(tblobjname "layer" tc_la))))))
- (command "-hatch" "p" tc_name tc_scle tc_ang "s" (entlast) "" "")
- ;(entdel pt1) ;刪除矩形程式碼
- (while (/= 0 (getvar "cmdactive")) (command pause))
- (vla-put-color (vlax-ename->vla-object (entlast)) tc_col)
- (vla-put-layer (vlax-ename->vla-object (entlast)) tc_la)
- (vla-put-linetype (vlax-ename->vla-object (entlast)) tc_ltype)
- (setq princtext (strcat "\n當前填充圖案:" tc_name))
- (princ princtext)
- (princ "\n矩形填充完成")
- (princ)
- )
两个问题,1.获取solid图案后,执行下一步会有问题。
2.怎样优化成如果不选取填充,默认是上次的填充图案比例角度
在大神@xyp1964 的帮助下问题已经解决。附上优化后的代码。
|