马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - [php]
- ;;本程序用来测试在UCS下生成块实体并插入当前图形
- ;;可以在UCS或者进行了视图扭转的情况下使用的简单标注
- ;;本程序用来测试在UCS下生成块实体并插入当前图形
- (defun c:test (/ p thisdrawing blocks modelspace blkref blkdef txt)
- (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object))
- blocks (vla-get-blocks thisdrawing)
- modelspace (vla-get-modelspace thisdrawing)
- )
- (vla-startundomark thisdrawing)
- ;;标记UNDO
- (while (setq p (getpoint "\nPoint: "))
- ;;块一定要定义在原点
- ;;Normal 保证实体在WCS下
- (setq blkdef (vla-add blocks (vlax-3d-point '(0. 0. 0.)) "*U"))
- (vla-put-normal
- (vla-addline
- blkdef
- (vlax-3d-point '(0. 0. 0.))
- (vlax-3d-point '(10. 10. 0.))
- )
- (vlax-3d-point '(0. 0. 1.))
- )
- (vla-put-normal
- (vla-addline
- blkdef
- (vlax-3d-point '(10. 10. 0.))
- (vlax-3d-point '(40. 10. 0.))
- )
- (vlax-3d-point '(0. 0. 1.))
- )
- (vla-put-normal
- (setq txt (vla-addtext
- blkdef
- (strcat "X" (rtos (cadr p) 2 3))
- (vlax-3d-point '(10. 11. 0.))
- 3.
- )
- )
- (vlax-3d-point '(0. 0. 1.))
- )
- ;;此处处理经过Put-Normal的实体
- (vla-put-insertionpoint
- txt
- (vlax-3d-point '(10. 11. 0.))
- )
- (vla-put-normal
- (setq txt (vla-addtext
- blkdef
- (strcat "Y" (rtos (car p) 2 3))
- (vlax-3d-point '(10. 6. 0.))
- 3.
- )
- )
- (vlax-3d-point '(0. 0. 1.))
- )
- ;;此处处理经过Put-Normal的实体
- (vla-put-insertionpoint
- txt
- (vlax-3d-point '(10. 6. 0.))
- )
- ;;插入匿名块
- (setq blkref
- (vla-insertblock
- modelspace
- (vlax-3d-point
- (trans p 0 1)
- )
- (vla-get-name blkdef)
- 1
- 1
- 1
- 0
- )
- )
- ;;保证Normal
- (vla-put-normal
- blkref
- (vlax-3d-point '(0. 0. 1.))
- )
- ;;此处处理经过Put-Normal的实体
- (vla-put-insertionpoint
- blkref
- (vlax-3d-point
- (trans p 1 0)
- )
- )
- ;;如果视图使用Plan命令进行了扭转
- (if (not (zerop (getvar "VIEWTWIST")))
- (vla-put-rotation blkref (- (getvar "VIEWTWIST")))
- )
- )
- (princ)
- )[/php]
|