获取a的X Y Z坐标
是否可以将一行的起点X Y Z和终点X Y Z放入剪贴板??我需要手动复制坐标,然后说将其粘贴到文本文件?。。
你知道的?CTRL+V它在别的地方吗?
因为我有这个宏代码,我不太了解lisp,我该如何将XYZ坐标放入剪贴板。这样我就可以使用宏搜索提取的excel文件上的坐标
有人能帮我做一个lisp例程,只剪切线的x y z坐标吗?
因此,我可以按CTRL+V组合键将其放置在任何位置,将其放置在excel单元格、文本、文字中,我可以使用CTRL+V快捷键的任何位置。。 1尝试数据提取应该做你想做的事。
2列表选择行复制信息,但您将获得额外信息。
3使用lisphttp://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/pasteclip-and-copyclip-commands/td-p/3790508 请尝试以下操作:
(defun c:l2c ( / ent )
(if (setq ent (LM:selectifobject "\nSelect line: " "LINE"))
(if (LM:copytoclipboard
(LM:lst->str
(mapcar 'rtos
(append
(cdr (assoc 10 (entget ent)))
(cdr (assoc 11 (entget ent)))
)
)
"\t"
)
)
(princ "\nLine endpoints copied to clipboard.")
)
)
(princ)
)
;; Same method as MP demonstrates here: http://bit.ly/170kacW
(defun LM:copytoclipboard ( str / clp htm par rtn )
(if (setq htm (vlax-create-object "htmlfile"))
(progn
(setq rtn
(vl-catch-all-apply
'(lambda ( )
(setq par (vlax-get htm 'parentwindow)
clp (vlax-get par 'clipboarddata)
)
(vlax-invoke clp 'setdata "Text" str)
)
)
)
(foreach obj (list clp par htm)
(if (= 'vla-object (type obj))
(vlax-release-object obj)
)
)
(if (not (vl-catch-all-error-p rtn)) str)
)
)
)
;; Select if Object-Lee Mac
;; Continuously prompts the user for a selection of a specific object type
(defun LM:selectifobject ( msg typ / ent )
(while
(progn (setvar 'errno 0) (setq ent (car (entsel msg)))
(cond
( (= 7 (getvar 'errno))
(princ "\nMissed, try again.")
)
( (null ent) nil)
( (not (wcmatch (cdr (assoc 0 (entget ent))) typ))
(princ "\nInvalid object selected.")
)
)
)
)
ent
)
;; List to String-Lee Mac
;; Concatenates each string in a supplied list, separated by a given delimiter
;; lst - List of strings to concatenate
;; del - Delimiter string to separate each item
(defun LM:lst->str ( lst del )
(if (cdr lst)
(strcat (car lst) del (LM:lst->str (cdr lst) del))
(car lst)
)
)
(vl-load-com) (princ)
这正是我需要的!!!!非常感谢!我现在可以用这个了!天哪,你的天才! 不客气! 先生,有一个问题。。。
我无法使用命令:
“选择P”在选择线之后,我如何改变选择线的方式?
请尝试以下修改的代码:
(defun c:l2c ( / ent )
(if (or (and (setq ent (ssget "_I" '((0 . "LINE"))))
(setq ent (ssname ent 0))
)
(setq ent (LM:selectifobject "\nSelect line: " "LINE"))
)
(if (LM:copytoclipboard
(LM:lst->str
(mapcar 'rtos
(append
(cdr (assoc 10 (entget ent)))
(cdr (assoc 11 (entget ent)))
)
)
"\t"
)
)
(princ "\nLine endpoints copied to clipboard.")
)
)
(princ)
)
;; Same method as MP demonstrates here: http://bit.ly/170kacW
(defun LM:copytoclipboard ( str / clp htm par rtn )
(if (setq htm (vlax-create-object "htmlfile"))
(progn
(setq rtn
(vl-catch-all-apply
'(lambda ( )
(setq par (vlax-get htm 'parentwindow)
clp (vlax-get par 'clipboarddata)
)
(vlax-invoke clp 'setdata "Text" str)
)
)
)
(foreach obj (list clp par htm)
(if (= 'vla-object (type obj))
(vlax-release-object obj)
)
)
(if (not (vl-catch-all-error-p rtn)) str)
)
)
)
;; Select if Object-Lee Mac
;; Continuously prompts the user for a selection of a specific object type
(defun LM:selectifobject ( msg typ / ent )
(while
(progn (setvar 'errno 0) (setq ent (car (entsel msg)))
(cond
( (= 7 (getvar 'errno))
(princ "\nMissed, try again.")
)
( (null ent) nil)
( (not (wcmatch (cdr (assoc 0 (entget ent))) typ))
(princ "\nInvalid object selected.")
)
)
)
)
ent
)
;; List to String-Lee Mac
;; Concatenates each string in a supplied list, separated by a given delimiter
;; lst - List of strings to concatenate
;; del - Delimiter string to separate each item
(defun LM:lst->str ( lst del )
(if (cdr lst)
(strcat (car lst) del (LM:lst->str (cdr lst) del))
(car lst)
)
)
(vl-load-com) (princ)
页:
[1]