你好
我需要帮助解决Lisp程序的问题。
让它适应我的愿望。
它几乎成功了,我只想去掉“ensel部分”。我不需要手动选择,因为块名已经已知。
必须删除的块是Lookup1值为“1”的块“cabletype A”和“cabletype B”。
(首次加载动态块LSP)
提前感谢,
PmxCAD
- ;;
- ;;--------- Allen Johnson --------------------------------------------------------
- ;;
- ;; find dynamic blocks
- ;; a command line function to select all dynamic blocks
- ;; with the same effective name and same visibility state
- (defun c:test (/ en obj effname ssdb ssfvis visname visstat c)
- (setq en (car (entsel)))
- (if en
- (progn (setq obj (vlax-ename->vla-object en))
- (if (vlax-property-available-p obj 'effectivename)
- (progn (setq effname (vlax-get-property obj "effectivename"))
- ; first create a ss of the dynamic blocks with the right name
- (setq ssdb (ssdblk effname))
- ; now filter for visibility
- (setq ssfvis (ssadd)
- c 0
- )
- (setq lookupname "Lookup1")
- (setq lookupstat "1")
- (while (< c (sslength ssdb))
- (setq en (ssname ssdb c))
- (setq evstat (print (getdynprop en lookupname)))
- ;(if (= (strcase evstat) (strcase lookupstat))
- (if (= evstat (strcase lookupstat))
- (ssadd en ssfvis)
- )
- (setq c (1+ c))
- )
- )
- (prompt "\nNot a block.\n")
- )
- (command "erase" ssfvis)
- (princ)
- )
- )
- )
提前感谢,
PmxCAD
电缆类型B.dwg
dynblock。LSP |