QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
系统
[系统通知] 平台第一个项目外包——项目拼多;正式上线,欢迎各单位个人有外包、设计、采购、加工需求的,在此寻找更牛的解决方案
2021-07-01
查看: 4900|回复: 5
收起左侧

[已答复] 怎么用autolisp编辑命令进行图案填充

[复制链接]
发表于 2013-4-19 18:51:22 | 显示全部楼层 |阅读模式

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
怎么用autolisp编辑命令来进行简单图案填充,比如图片上的剖切线?是用hatch对吧,但总写不对!请大家帮个忙!先谢谢大家了!
12.jpg
22.jpg
发表于 2013-4-19 19:36:25 | 显示全部楼层
ANSI31 这个不是?
 楼主| 发表于 2013-4-19 19:41:08 | 显示全部楼层
rushs 发表于 2013-4-19 19:36 static/image/common/back.gif
) U( I2 @0 I1 i2 ~3 I8 v% Z, eANSI31 这个不是?
! B: z& v$ A; S) N4 i$ O7 W6 I
嗯,填充图案是用ANSI31,就是不懂用autolisp应该去编辑命令?
发表于 2013-4-20 04:41:01 | 显示全部楼层
本帖最后由 woaishuijia 于 2013-4-20 04:54 编辑
  K& b: `* b$ x1 U1 G/ q
% @2 A9 y2 N% I/ k6 v' Q' f跟我做7 w4 h5 R2 u: y9 H/ V2 ~) w
首先按功能键"F2",调出CAD文本窗口,便于我们下一步查看命令行提示内容
! S' J% I: z( X; E# N在命令行输入下面的代码
  1. (command"hatch")
复制代码
回车后看看CAD命令行提示了什么?; r$ E( M6 \/ v+ M$ R! F$ }) P; `
"图案名称或 [?/实体(S)/用户定义(U)/渐变色(G)] <ANGLE>:"
" H9 j- t8 e; R: n4 O' o这是在让我们指定图案名称,并且默认名称是"angle".以及其它不太常用的填充选项
5 G4 j8 M1 t7 g8 D键入"ansi31",回车后再看命令行提示了什么?
' {2 M* {* w5 t4 A+ K7 T6 K4 c"图案缩放比例 <1.0000>:"
: v8 D9 Q, o: u( ~& M这是在让我们指定图案填充比例,并且默认值是1+ Z. D5 ^; A; Q) p* i: y9 A. W
再回车看命令行提示了什么?) Y8 d2 b5 }# d" m+ j& j- D
"图案角度 <0.0000>:"
" A4 v' W: }: M8 o* t这是在让我们指定填充角度,并且默认值是0度
7 t% Y. ]' @7 h; o0 N' h再回车看命令行提示了什么?
; Z4 u* e- D/ t' R% e& T"选择定义图案填充边界的对象或 <直接图案填充>,
" R( o, c# M, x7 i( T! H- H  E- w选择对象:"! M4 ~( P5 p6 N# U' Y
这是在让我们提供填充图案的边界,并且给出了两种方法:第一种(默认)方法是提供能够构成封闭区域的一个或一组首尾相连的图形对象选择集;第二种方法是用一系列点来指定填充边界% o0 U1 L- L2 O* c3 X1 B
第一种方法我们有两个选择:用变量提供一个现有的选择集(如果你在程序中已经创建过符合要求的选择集并且保存到某个变量中)或用"ssget"方法提供给它一个新选择集,下面的代码谨供参考.
  1. (command"circle"(getpoint"\n指定圆心:")100)(command "hatch""ansi31"1 0(ssget"l")"")
复制代码
  1. (command"boundary"(getpoint"\n指定内部点:")"")(command "hatch""ansi31"""""(ssget"l")"")
复制代码
可以自己参考上面的过程去进一步尝试了解其它具体的选项和参数要求,包括直接图案填充
 楼主| 发表于 2013-4-20 14:37:50 | 显示全部楼层
本帖最后由 fnwengjx 于 2013-4-20 23:34 编辑 6 q$ ]7 L/ t; Z* f4 M4 Z5 Z/ I# V8 I
woaishuijia 发表于 2013-4-20 04:41 static/image/common/back.gif, N( ^+ M5 r: P
跟我做
! e  ~* y- e1 J! @2 t0 E. N$ Y1 @  P首先按功能键"F2",调出CAD文本窗口,便于我们下一步查看命令行提示内容% k1 F3 w5 Z5 U: @9 a3 C
在命令行输入下面的代码回车 ...

* ]7 M6 X2 g8 ^: ^. S& x先谢谢版主指导!
+ v6 i1 K9 L& x) h. t( P
: x3 f$ e& g. e' u' {, J我之前是先操作一遍图案填充,然后按“F2”,调出CAD文本窗口,如图1显示。
* f. G4 g% I' e4 L% G
- T$ Z% J2 e4 ~+ g

图1

图1
3 [1 b8 F7 S$ E9 W
2 q. _; e3 ]1 I  r, _+ I, J7 h
然后在命令行输入代码:(command"bhatch")或输入-bhatch,回车; m# H5 T" z, v( J0 c2 B/ Z; Y
命令行提示:“指定内部点或 [特性(P)/选择对象(S)/绘图边界(W)/删除边界(B)/高级(A)/绘图次序(DR)/原点(O)/注释性(AN)]”* u3 C7 S' h0 b2 g
键入:s,我再回车,只需要在我需要填充的区域中选取一个点,回车就完成了。* G# h/ q8 a8 J* q
CAD文本窗口如图2显示,这里填充图案默认(是上次的操作选择),无法修改。
2 I1 D" s+ o) C& k
5 q: |  ^6 [) k& ]! ?

图2

图2
3 K  m- h2 w7 _6 }% o4 ]
8 i: b( U+ h6 o( ?7 r
我的问题是无法用Autolisp编辑出程序,直接在命令行输入函数名直接完成。! @8 p( }) c  u6 }# W1 U# L- p3 ^

7 R' O! r& P3 F- n$ F7 g5 E按您的方法,在命令行输入代码:(command"hatch"),前面都懂,还是到了对象选择,我先回车,选择不保留多段边界,然后拾取组成边界的几个点,回车即可完成。我这课呢个是用了您说的第二种方法吧,但第一种我不太明白图形对象选择集!
9 [0 t( d+ Q( }3 q7 `7 B 5 w* I" H! }7 c4 \! v4 v0 t
在给的程序中,我用(command"circle"(getpoint"\n指定圆心:")100)(command "hatch""ansi31"1 0(ssget"l")"")能完成在圆内画剖切线,这种我能明白,但是不能与我之前写的程序连接起来,就是说我在命令行输入一个我写的函数名,而程序只能运行到这两句程序的上一步,但只执行选中这两句是可以的。这两种填充貌似只能填充那种正好构成封闭的区域。
7 w: \8 a: v7 W; K1 h$ Z# n. ]我刚接触Autolisp,之前对AutoCAD操作的也不是很熟练,过多无知之处请多多指教!3 m$ G+ O  d, t5 N( P0 u! P
发表于 2013-4-21 01:15:22 | 显示全部楼层
  1. (COMMAND"BHATCH""P""ANSI31""""")
复制代码
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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