找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1277|回复: 7

[求助] 关于hatch,还有可选参数函数

[复制链接]
发表于 2013-5-30 03:42:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 夏生生 于 2013-5-30 04:09 编辑

研究了一段时间hatch,有几个问题请大家指教。1、函数(bhatch pt [ss][])后面两个可选参数是什么?查遍我能搜索到的互联网没找到我能看明白的网站。
2、填充渐变色的控制组码为453、463、63、421、470,当我需要为真彩色时,63值很怪异,看不到规律。
实际由421控制,421为(+ (* BLUE 65536) (* GREEN 256) RED),当我需要为双色时421的值第一个63后面
跟随的421值又不是真彩色,这里比较模糊。
3、如自定义类似这样的可选参数函数怎么做,可否给个小范例。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 20个

财富等级: 恭喜发财

发表于 2013-5-30 08:37:25 | 显示全部楼层
下面的提供的命令,是一个填充的刷子,里面有BHATCH的可选参数的用法

  1. ;;;===================================================================================
  2. ;;;Hatch - Matches existing hatch and allows user to pick new object
  3. ;;;===================================================================================


  4. (defun c:mh (/ ocol olay col ent lay hat sca rot po)
  5.   (setq ocol (getvar "cecolor"))
  6.   (setq olay (getvar "clayer"))
  7.   (setq oosn (getvar "osmode"))
  8.   (setvar "osmode" 0)
  9.   (if (setq ent (entsel "\nSelect a hatch pattern to copy."))
  10.     (progn
  11.       (setq ent (entget (car ent)))
  12.       (if (= (cdr (assoc 0 ent)) "HATCH")
  13.         (progn
  14.           (setq lay (cdr (assoc 8 ent)))
  15.           (setq hat (cdr (assoc 2 ent)))
  16.           (setq sca (cdr (assoc 41 ent)))
  17.           (setq rot (cdr (assoc 52 ent)))
  18.           (setq rot (* rot (/ 180 pi)))
  19.           (setq col (cdr (assoc 62 ent))) ; may return nil
  20.           (cond
  21.             ((or
  22.                (= col "BYLAYER")
  23.                (= col "BYBLOCK")
  24.              )
  25.               (setvar "cecolor" col)
  26.             )
  27.             ((= (type col) 'int)
  28.               (setvar "cecolor" (itoa col))
  29.             )
  30.           )
  31.           (command "layer" "s" lay "")
  32.           (initget "s")                       ; this allows numbers to be entered
  33.           (setq po (getpoint "\nSelect Internal Point or (S)elect Objects:"))
  34.           (if (= (type po) 'list)
  35.             (command "-bhatch" po "p" hat sca rot "")  ;;PO是点的情况下,BHATCH用法
  36.             (if (setq po (ssget))      ; allow one choice only
  37.               (command "-bhatch" "s" po "" "p" hat sca rot "");;PO是选择集的情况下,BHATCH用法
  38.               (prompt "\nNothing selected.")
  39.             )
  40.           )
  41.         )
  42.         (prompt "\nSelection was not a hatch.")
  43.       )
  44.     )
  45.     (prompt "\nNothing selected.")
  46.   )
  47.   (setvar "clayer" olay)
  48.   (setvar "cecolor" ocol)
  49.   (setvar "osmode" oosn)
  50.   (princ)
  51. )

点评

谢谢您的回复,我说的不是command而是(bhatch)函数  发表于 2013-5-30 09:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

发表于 2013-5-30 05:55:46 | 显示全部楼层
研究得真深入呀,佩服。支持高手们深入研究:lol
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2013-5-30 08:30:10 | 显示全部楼层
先贴个不用可选参数的使用BHATCH的用法

  1. (setq ent1 (getpoint "*** Select POINT for Hatch "))
  2. (command "_.-bhatch" ent1 "" "")
  3. (while (= 1 (getvar "cmdactive"))
  4.   (command pause)
  5. )
  6. ;;; end while
  7. (command "")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-5-30 08:39:02 | 显示全部楼层
没有仔细研究过Hatch,不过,有种设定叫做“忽略”。
下面是2012的帮助:
HATCH
以下组码适用于图案填充和 MPolygon 图元。除此处所述的组码以外,另请参见通用图元组码。关于此表中使用的缩写和格式方面的信息,请参见本参考的格式惯例
HATCH 组码
组码
说明
100
子类标记 (AcDbHatch)
10
标高点(在 OCS 中)
DXF:X 值 = 0;APP:三维点(XY 始终等于 0,Z 表示标高)
20, 30
DXF:标高点的 Y 值和 Z 值(在 OCS 中)
Y 值 = 0,Z 表示标高
210
拉伸方向(可选;默认值 = 0, 0, 1)
DXF:X 值;APP:三维矢量
220, 230
DXF:拉伸方向的 Y 值和 Z
2
填充图案名
70
实体填充标志(实体填充 = 1;图案填充 = 0);对于 MPolygon,为 Mpolygon 的版本
63
对于 Mpolygon,图案填充颜色为 ACI
71
关联性标志(关联 = 1;无关联 = 0);对于 Mpolygon,为实体填充标志(有实体填充 = 1;无实体填充 = 0)
91
边界路径(环)数
多种
边界路径数据。重复代码 91 指定的次数。参见边界路径数据
75
图案填充样式:
0 = 对“奇数奇偶校验”区域进行图案填充(普通样式)
1 = 仅对最外层区域进行图案填充(“外部”样式)
2 = 对整个区域进行图案填充(“忽略”样式)
76
填充图案类型:
0 = 用户定义;1 = 预定义;2 = 自定义
52
填充图案角度(仅限图案填充)
41
填充图案比例或间距(仅限图案填充)
73
对于 Mpolygon,为边界注释标志(边界是注释边界 = 1;边界不是注释边界 = 0)
77
填充图案双向标志(仅限图案填充):
0 = 非双向;1 = 双向
78
图案定义直线数
多种
图案直线数据。代码 78 指定的重复次数。参见图案数据
47
在相关图案填充和使用图案填充的“填充”方法创建的图案填充的填充图案计算中,用于确定执行各种相交和射线法操作的密度的像素大小。
98
种子点数
11
对于 MPolygon,为偏移矢量
99
对于 MPolygon,为退化边界路径(环)数(退化边界路径是图案填充忽略的边框)
10
种子点(在 OCS 中)
DXF:X 值;APP:二维点(多个条目)
20
DXF:种子点的 Y 值(在 OCS 中);(多个条目)
450
表示实体图案填充或渐变色;如果是实体图案填充,则剩余代码的值将被忽略,但必须存在。可选;如果代码 450 在文件中,下列代码也必须在文件中:451、452、453、460、461、462 和 470。如果代码 450 不在文件中,下列代码也必须不在文件中:451、452、453、460、461、462 和 470
0 = 实体图案填充
1 = 渐变色
451
保留零供以后使用
452
记录定义颜色的方法,仅用于对话框代码:
0 = 双色渐变色
1 = 单色渐变色
453
颜色数:
0 = 实体图案填充
2 = 渐变色
460
以弧度表示的渐变色的旋转角度(默认值 = 0, 0)
461
渐变色定义;对应于“边界图案填充”对话框“渐变色”选项卡中的“居中”选项。每个渐变色有两个定义,移动和非移动。“移动”值描述了应使用的两种定义的过渡。值 0.0 表示应仅使用非移动版本,值 1.0 表示应仅使用移动版本。
462
对话框代码使用的色调值(默认值 = 0, 0;范围从 0.0 到 1.0)。色调值是一个渐变色,用于当图案填充组码 452 设定为 1 时,控制对话框中的色调度。
463
保留供以后使用:
0 = 第一个值
1 = 第二个值
470
字符串(默认值 = 线性)

点评

谢谢您的回复,就是需要填充渐变才研究这个组码的,平时都是忽略的  发表于 2013-5-30 09:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-30 09:25:24 | 显示全部楼层
marting 发表于 2013-5-30 08:37
下面的提供的命令,是一个填充的刷子,里面有BHATCH的可选参数的用法

学习了:D。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-25 14:29 , Processed in 0.379284 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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