明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: adc

继承填充

  [复制链接]
发表于 2012-8-2 21:43 | 显示全部楼层
学习~~
发表于 2012-8-2 21:59 | 显示全部楼层
...不过图层还是当前图层...
意即只继承填充样式而其余依所选框架所在层的设定?
亦或还有其他的规范...

点评

adc
希望新填充的图层也跟所选填充的图层一样  发表于 2012-8-2 22:17
发表于 2012-8-2 22:33 | 显示全部楼层
那么在院长的代码中补一句 ...

(while (setq s1 (ssname ss (setq i (1+ i))))
  (command "hatch" hp hs ha s1 "")
  (command "_matchprop" s1 (entlast))   ; add this line
)
发表于 2012-8-2 22:59 | 显示全部楼层
本帖最后由 raimo 于 2012-8-2 23:02 编辑

感觉这种操作方式没必要用LISP再来实现。。
难道随意用一种填充图案来填充目标之后,再刷成你需要继承的图案很麻烦吗?一点也不比这样继承填充慢啊,图层也一样


如果你们是固定了几种常用填充样式的话,我介绍一个给你参考一下,看看是否适合你
预设常用填充V1.2——用LISP来快速完成常用填充

点评

刷起来不觉得麻烦吗?  发表于 2012-8-2 23:17
虽然实际用途不大,出出题目练练手也是好的...  发表于 2012-8-2 23:07
发表于 2012-8-2 23:49 | 显示全部楼层
  1. (defun c:123 (/ ent1 x0)
  2.   (setq ent1 (entsel))
  3.   (initget "1 2")
  4.   (setq x0 (getkword "1框选 2点选 "))
  5.   (cond
  6.     ((= x0 "1") (progn (setq ss1 (ssget))(command "-BHATCH" "s" ss1 "" "p" "solid" "")))
  7.     ((= x0 "2") (command "-BHATCH" pause "p" "solid" ""))
  8.   )
  9.   (setq ent2 (entlast))
  10.   (command "matchprop" ent1 "L" "")
  11. )

弱弱的发一个,点选暂时只能单选

点评

adc
也是一种思路,挺好的  发表于 2012-8-3 01:04
发表于 2012-8-3 00:10 | 显示全部楼层
本帖最后由 raimo 于 2012-8-3 00:13 编辑
xyp1964  刷起来不觉得麻烦吗?

回院长,实际应用中可不是这么规则的一个个小方框,我个人感觉一次性填充完再刷快多了。搜索边界也快些
在图形对象很多图层多,边缘情况复杂的情况下选取一个填充样式再去点填充,然后再选另一个填充样式再填充,速度明显很慢的。。


当然我仅针对我自己的工作情况发表观点,也许不适合其他绘图工种,参考参考吧

点评

试试看谁快……  发表于 2012-8-3 00:14
adc
有时候填充后置了,刷起来也不太方便的  发表于 2012-8-3 00:14
adc
设置成只选择填充不就不会影响了,总不会有很多填充重叠在一起吧  发表于 2012-8-3 00:13
发表于 2012-8-3 08:30 | 显示全部楼层
高人不少
 楼主| 发表于 2012-8-3 11:47 | 显示全部楼层
本帖最后由 adc 于 2012-8-3 11:53 编辑

谢谢大家帮忙了,不过怎么没有人要悬赏,虽然你们也不在乎这一点明经币,院长或严总随便点一下,就送出去了

点评

(vla-put-color (vlax-ename->vla-object (entlast)) tc_col)后加一句 (vla-put-layer (vlax-ename->vla-object (entlast)) tc_la)即可随填充层  发表于 2012-8-3 12:34
 楼主| 发表于 2012-8-3 12:44 | 显示全部楼层
本帖最后由 adc 于 2012-8-3 14:25 编辑
adc 发表于 2012-8-3 11:47
谢谢大家帮忙了,不过怎么没有人要悬赏,虽然你们也不在乎这一点明经币,院长或严总随便点一下,就送出去了

(setq orig_layer (getvar "clayer"))
.....
(setvar "clayer" tc_la)
.......
(setvar "clayer" orig_layer)
我是笨办法搞的
还有个问题想请教,如果要点选填充时能连续填充多个要怎样做?还有就是希望多个填充是独立的图案填充要怎样,先设置HPSEPARATE吗,还是有更好的办法?

框选多个时,要求填充是独立的填充,请问要怎样处理?谢谢

点评

连续多个的话加while循环即可。。。(while(setq p(getpoint"\n指定内部点"));;;可连续点选填充  发表于 2012-8-3 13:20
发表于 2012-8-3 20:06 | 显示全部楼层

  1. (defun c:jctc (/ tc_e tc_vlae tc_name tc_scle tc_ang tc_la tc_col key e p)
  2.   (setq tc_e (car (entsel "\n选择填充源图案:")))
  3.   (while
  4.     (setq tc_vlae (vlax-ename->vla-object tc_e)
  5.           tc_name (vla-get-patternname tc_vlae)
  6.           tc_scle (vla-get-patternscale tc_vlae)
  7.           tc_ang  (vla-get-patternangle tc_vlae)
  8.           tc_la          (vla-get-layer tc_vlae)
  9.           tc_col  (vla-get-color tc_vlae)
  10.     )
  11.      (if (= tc_col 256)
  12.        (setq tc_col (cdr (assoc 62 (entget (tblobjname "layer" tc_la)))))
  13.      )
  14.      (prompt "\n选择填充对象:")
  15.      (setq ss (ssget))
  16.      (if (= ss nil)
  17.        (progn
  18.          (while
  19.            (setq p (getpoint "\n指定内部点"))
  20.             (command "boundary" "A" "o" "R" "" p "")
  21.             (IF (= (vla-get-objectname (setq vlae (vlax-ename->vla-object (setq e (entlast))))) "AcDbRegion")
  22.                (progn
  23.                  (command "hatch" "p" tc_name tc_scle (* 180 (/ tc_ang pi)) e "")
  24.                  (vla-put-color (vlax-ename->vla-object (entlast)) tc_col)
  25.                  (vla-delete vlae)
  26.                );;end_progn
  27.                (princ "\n无法点选填充,请选择填充...")
  28.             );;;end_if
  29.          );;end_while
  30.        );;end_progn
  31.        (progn
  32.          (command "hatch" "p" tc_name tc_scle (* 180 (/ tc_ang pi)) ss "")
  33.          (vla-put-color (vlax-ename->vla-object (entlast)) tc_col)
  34.        );;end_progn
  35.      );;;end_if
  36.   );;end_while
  37. );;end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 07:56 , Processed in 0.223926 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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