使用来自的值重复偏移
是否有人拥有lisp,可以重复偏移文本中的值列表,从而允许用户选择要偏移的项?我们用map 3d做了很多横截面,需要某种方式来指示其上的现有道路。这会有很大帮助。
谢谢 这里有很多关于多个偏移和设置偏移值的Lisp,您可以简单地设置默认值,然后按enter键接受。我使用这种技术,我们知道我们将在会话中连续绘制一个值,重复lisp不会提出问题,唯一的回退是需要第二个lsp通常在命令行键入它(setq OFF1 nil),以再次强制用户输入。
如果你以前画过偏移线,我在上面画了一条线,它会自动计算出偏移值,这样你就不必记住它们了。对于与绘制墙lisp结合使用的不同尺寸的建筑墙非常方便。 而不是从文件中读取值。您可以使用扩展数据方法
(defun c:OXDSample (/ Add_XData Read_XData obj OData ofd)
;;; Xdata Function byASMI;;;
(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公司
编辑:是的,当你关闭文件时,这些值仍然存在。
页:
[1]