- UID
- 14
- 积分
- 8264
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-1-4
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
早先的一个程序,很简单,执行 Dim Hatch 命令前设置到特定图层
 - ;;设置当前图层
- (defun Reactor:SetLayer (name / lay)
- (setq retlay (getvar "clayer"))
- (if (tblsearch "layer" name)
- (progn
- (setq lay
- (vla-item (vla-get-layers
- (vla-get-activedocument (vlax-get-acad-object))
- )
- name
- )
- )
- (if (= :vlax-True (vla-get-lock lay))
- (progn
- (setq $laylock :vlax-True)
- (vla-put-lock lay :vlax-False)
- )
- )
- (if (= :vlax-False
- (vla-get-layeron lay)
- )
- (progn
- (setq $layon :vlax-false)
- (vla-put-layeron lay :vlax-true)
- )
- )
- (if (= :vlax-True (vla-get-Freeze lay))
- (progn
- (setq $layfrz :vlax-true)
- (vla-put-Freeze lay :vlax-false)
- )
- )
- (vla-put-activelayer
- (vla-get-activedocument (vlax-get-acad-object))
- lay
- )
- )
- (progn
- (vla-add (vla-get-layers
- (vla-get-activedocument (vlax-get-acad-object))
- )
- name
- )
- (vla-put-activelayer
- (vla-get-activedocument (vlax-get-acad-object))
- (vla-item (vla-get-layers
- (vla-get-activedocument (vlax-get-acad-object))
- )
- name
- )
- )
- )
- )
- )
- ;;命令结束或者中断后恢复图层状态
- ;;;upon completion of command restores *layers* to previous state
- (defun Reactor:Restorelayer (reactor info / cmd layobj)
- (setq cmd (car info))
- (if
- (and
- (wcmatch
- (strcase cmd)
- "*DIM,*DIMLINEAR,*DIMALIGNED,*DIMORDINATE,*DIMRADIUS,*DIMDIAMETER,*DIMANGULAR,*DIMBASELINE,*DIMCONTINUE,*QDIM,*LEADER,*QLEADER,*HATCH"
- )
- retlay
- )
- (progn
- (vla-setvariable
- (vla-get-activedocument (vlax-get-acad-object))
- "clayer"
- retlay
- )
- (if $layon
- (vla-put-LayerOn layoff 0) ;_turn it off again
- )
- (if $layfrz
- (vla-put-Freeze layfreeze 1) ;_freeze it again
- ) ;_end if
- (if $laylock
- (vla-put-Lock laylock 1) ;_Lock it again
- ) ;_end if
- (setq $layon nil
- $layfrz nil
- $laylock nil
- retlay nil
- )
- )
- )
- )
- ;;命令开始设置当前图层
- (defun Reactor:Autolayer (reactor info / cmd)
- (setq cmd (strcase (car info))) ;_ get command name
- (cond
- ((wcmatch cmd "*HATCH") ;_is the command "*hatch"?
- (Reactor:SetLayer "HATCH") ;_填充图层
- )
- ((wcmatch
- (strcase (car info))
- "*DIM,*DIMLINEAR,*DIMALIGNED,*DIMORDINATE,*DIMRADIUS,*DIMDIAMETER,*DIMANGULAR,*DIMBASELINE,*DIMCONTINUE,*QDIM,*LEADER,*QLEADER"
- )
- (Reactor:SetLayer "DIM") ;_标注图层
- )
- (t)
- )
- )
- (if (not ea:Hatch_Dim_reactor)
- (setq ea:Hatch_Dim_reactor
- (VLR-Command-reactor
- nil
- '((:VLR-commandWillStart . Reactor:Autolayer) ;_命令开始执行
- (:VLR-commandEnded . Reactor:Restorelayer) ;_命令结束执行
- (:VLR-commandCancelled . Reactor:Restorelayer) ;_命令中断执行
- )
- )
- )
- )
- (princ)
|
评分
-
查看全部评分
|