而不是从文件中读取值。您可以使用扩展数据方法
- (defun c:OXDSample (/ Add_XData Read_XData obj OData ofd)
- ;;; Xdata Function by ASMI ;;;
- (defun Add_XData (Ent ; - Entity Ename
- App ; - Application name
- dList ; - XData list (list(cons group data)...)
- )
- (regapp App)
- (entmod(append(entget Ent)(list(list -3(append(list App)dList)))))
- )
- (defun Read_XData (
- Ent ; - Entity Ename
- apName ; - Application name
- /
- xEnt)
- (setq xEnt (entget Ent (list apName))
- xEnt (vl-remove
- apName
- (cadar
- (vl-remove-if
- (function
- (lambda (a)
- (/= -3 (car a))))
- xEnt)))
- ) ; end setq
- )
- (while (setq obj (car (entsel "\nSelect object to offset:")))
- (if (setq OData (Read_XData obj "Offset values"))
- OData
- (progn (initget 1)
- (setq ofd (getdist "\nOffset Distance: "))
- (Add_XData
- obj
- "Offset values"
- (list (cons 1000 (rtos ofd 2))))
- (setq OData (Read_XData obj "Offset values")))
- )
- (command "_offset" (distof (cdar odata)) obj pause "")
- )(princ)
- )
如果所选实体没有扩展数据值,程序将提示您输入距离。如果它确实有数据,则会提示您拾取要偏移的边,并使用分配给该实体的数据
试试看。
HTH公司
编辑:是的,当你关闭文件时,这些值仍然存在。 |