找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3219|回复: 5

刚开始学习autocad的VBA,请大侠帮帮忙~

[复制链接]
发表于 2014-11-12 18:07:54 | 显示全部楼层 |阅读模式
不知道能不能用Macro,或者VBA来实现下面的工作:
* R) p3 I* p7 p% _. A* b
) B! a' ?3 i2 v, h( Q1.在模型空间,插入一个已经在的 块,比如:名字为 “KK”, 效果是 能在工具条上创建按钮, 点击之后,只需要在屏幕上 点取 位置就能放置 块(有炸开 和 非炸开两种模式最好,做成两个按钮)。, L! F8 k. h4 l

9 i% N3 M: q; z. \( E; {2.在模型空间,进行 指定条件的筛选(2007自带快速选择功能),然后把筛选出来的一类目标的某些特性修改为另外的特性, 比如: 选择 所有 线型=Center 的目标,然后,把这些目标全部移动到 图层:200, 颜色=Bylayer,线型=Bylayer,线宽=Bylayer。 同样也做成按钮,放在工具条上~
5 t0 Q. Z# [5 r7 f9 a. z: ?: w/ B' `. @( L0 L% P
求各位大侠帮忙哈~/ _! [1 m& \$ S. Y0 k0 N/ A
回复

使用道具 举报

发表于 2014-11-12 19:52:54 | 显示全部楼层
Q1:这个我用autolisp实现过,点中自己制作的按钮,再点选标题栏左下角,就可以在设计栏中插入制作好的签名块并在后面写上当前日期。用VBA应该一样能行的。
8 S9 @  P. T# l6 L' m+ U- I2 t. l5 X" T
签名.JPG
发表于 2014-11-12 19:56:26 | 显示全部楼层
(defun  c:name(/ pt pt1 p1 p2 yy mm dd s text1 osd layer_old rr)
, S# O, O% ?2 A+ f/ W  (setq osd (getvar "osmode"))+ w0 ]9 m/ k7 m% |. d0 F( g6 _; F
  (setq pt0 '(142.0 5.0))( r7 |- E# F* g/ k/ N9 y6 b5 i4 r
  (initget 128)
1 y7 k0 o' y+ J  (setq pt (getpoint "\n请选取签名插入点"))1 z) X( |# N& O
  (if (= pt nil)& t8 V' ^& {7 N
      (setq pt pt0)
. l) o: G8 X& B  )2 n! H1 j4 k5 r; y" |$ v' |& a
            (setq pt1 (polar pt (/ pi 6) 35))! }( y$ d, g$ o5 C- \+ U& U% p
            (setq pt2 (polar pt1 (/ pi 8) 3))
' D% x; S* J/ Y- z            (setq sse (ssget "_c" pt1 pt2)) ; j6 |) m' i/ p/ y; C
            (command "erase" sse "")
. R( x8 J: k4 A- O+ p1 e  r3 }( ^
  L! @' R9 P2 D  (command "insert" "n1" pt "" "" "")
: R  |. F" l# @  (setq s (getvar "cdate")). \- u0 |) t4 ~" L
  (setq rr (- (* s 100000000) (fix (* s 100000000))))4 G2 K, r7 R) j0 X3 N3 {
  (setq yy (fix (/ s 10000)))
& i- \& V9 ~1 c  I" t( q  (setq mm (fix (/ (- s (* yy 10000)) 100)))
* p  H, \, Z7 q  (setq dd (fix (/ (- s (* (fix (/ s 100)) 100)))))
9 a/ O5 _1 q/ u0 J4 u: P  (setq text1 (strcat (rtos yy) "/" (rtos mm) "/" (rtos dd)))
; B- E* e# m: W8 C+ g( y4 ^' @  (setq p1 (polar pt (* 41 (/ pi 180.0)) 44.0))% l; t5 g" G/ F, w+ Q
  (setq p2 (polar pt (* 0 (/ pi 180.0)) (+ 50.0 rr)))
& A. i5 s- ~7 o- T4 N  (command "style" "txt" "txt.shx,gbcbig.shx" "" 0.85 "" "" "" "")5 X" F1 i( D9 g% g( x( {
  (setq layer_old (getvar "clayer"))' a7 r: _2 E( B' n* G9 }" f# e, }
  (setvar "clayer" "text")) {5 g( ~" P( K
  (setvar "osmode" 0)- ^% {. \0 N; K: h
  (command "text" p1 2 0 text1)/ O7 J; R  G/ M
  (setvar "cecolor" "40")
) m& k  W. u2 c) T  (command "point" p2); ]" C& T8 p- l+ `( g7 f; y6 C
  (setvar "cecolor" "bylayer")
& x" X" V* G" L  j  (setvar "clayer" layer_old)
" Q& L/ s, n% I5 o$ T* w  (setvar "osmode" osd)# K! d+ L2 g6 A: L( Q
  (princ)5 A. U; I) d% L; [
)
 楼主| 发表于 2014-11-12 20:27:18 | 显示全部楼层
zsdwx 发表于 2014-11-12 19:56 ; h6 c3 q! A( O3 z+ S6 V. Q, s
(defun  c:name(/ pt pt1 p1 p2 yy mm dd s text1 osd layer_old rr)
. {/ {: r1 u( |5 n1 C  (setq osd (getvar "osmode"))
9 {- R: g- B% V7 k( G- z! |; ~   ...
" V% j2 {% o! y. ~2 z9 Z! m" {
感谢回复,功能很好,能省下不少时间,不过我才刚入门,看不懂 ~。~4 |, D  t7 n  A( B! U: y
 楼主| 发表于 2014-11-12 21:34:01 | 显示全部楼层
还请各位大侠帮帮忙哈~
 楼主| 发表于 2014-11-13 18:23:07 | 显示全部楼层
第一个问题,自己在公司摸索了一上午, 大概能用了,能插入 命名为KK的块了,但是不会炸开6 N5 a0 V1 B& g- i  d& V. U
直接用宏命令做的,3 u' E) a6 e! b8 `3 \: p- _; M3 n
^C^C-insert KK \1 1 0
. x/ a# Y6 J( ?5 R第二个,完全找不到方向~
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-7-1 07:42 , Processed in 0.141890 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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