hmsilva 发表于 2022-7-5 19:01:29

不客气!
真奇怪。。。
你能在下一条消息中复制/粘贴你的代码吗?
 
亨里克

broncos15 发表于 2022-7-5 19:03:26

我意识到错误是什么。最后一个括号没有正确复制,所以我缺少了一个括号。谢谢你的帮助!

hmsilva 发表于 2022-7-5 19:06:09

 
很高兴你成功了。
 
亨里克

broncos15 发表于 2022-7-5 19:08:04

亨里克,我还有一个问题,哈哈。因此,我试图创建一个新的lisp例程,它利用了您的lisp例程,但其行为类似于xopen命令。有没有一种简单的方法可以使用xopen命令以只读方式打开?我已经在网上搜索过了,但到目前为止我没有找到任何有用的东西。

hmsilva 发表于 2022-7-5 19:11:46

 
嗨broncos15,
也许是这样的
(vl-load-com)
(defun c:demo (/ blk path sel)
   (if
       (and
         (setq sel (entsel "\nSelect a Xref: "))
         (setq blk (vlax-ename->vla-object (car sel)))
         (vlax-property-available-p blk 'Path)
         (setq path (vla-get-path blk))
       )
          (vla-activate
         (vla-open (vla-get-documents (vlax-get-acad-object)) (strcat "\"" path "\"") :vlax-true)
       )
   )
   (princ)
)
 
希望这有帮助,
亨里克

broncos15 发表于 2022-7-5 19:15:42

亨里克,
 
 
该代码运行得非常好。我确保我了解它是如何正确工作的:
(setq blk (vlax-ename->vla-object (car sel)))
)
1) 这部分具体做什么?我知道它将变量blk设置为选择中的属性(从entsel抓取的sel变量),但该属性到底是什么?我现在正在学习Visual Lisp,希望确保我理解。

hmsilva 发表于 2022-7-5 19:18:09

 

(setq blk (vlax-ename->vla-object (car sel)))
变量“sel”是从“entsel”函数返回的列表,第一个元素是所选对象“car”的实体名称,vlax ename->vla object将实体转换为vla对象
 
亨里克

broncos15 发表于 2022-7-5 19:23:45

这很有道理,谢谢你提供的信息!谢谢你的帮助,我真的很感激。

hmsilva 发表于 2022-7-5 19:24:17

 
不客气,broncos15
很高兴我能帮忙
 
亨里克

BIGAL 发表于 2022-7-5 19:27:02

括号和我的类型一样不平衡。快的
 
(Strcat“\”“deg”“\”)
页: 1 [2]
查看完整版本: 以只读方式打开