乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 18|回复: 18

[编程交流] Lisp不适用于仅模型la

[复制链接]
CAD

10

主题

57

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 15:59:33 | 显示全部楼层 |阅读模式
您好,我有一个lisp,只有在布局谁可以修改它,所以我也可以在模型中运行工作。thxxxxx
在模型中,它说:;错误:错误的参数类型:lselsetp nil
 
 
  1. (Defun c:vplk ()
  2. (setq d (ssget "_x" '((0 . "VIEWPORT"))))
  3.         (vplock d T)(princ))
  4. (Defun c:vpun ()
  5. (setq d (ssget "_x" '((0 . "VIEWPORT"))))
  6.         (vplock d nil)
  7.         (princ)
  8. )
  9. (Defun vplock (sel flg)
  10.         (setq mode (if flg  :vlax-true :vlax-false))
  11. (repeat (setq i (sslength sel))
  12.           (vlax-put-property (vlax-ename->vla-object (ssname sel (Setq i (1- i))))
  13.             'DisplayLocked mode)
  14.   )
  15.         (princ (strcat "\nViewports " (if flg "" "Un" )  "locked"))(princ)
  16. )                                  
  17. (vl-load-com)
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 16:03:55 | 显示全部楼层
好了,你不能锁定/解锁主模型空间视口。。。
回复

使用道具 举报

CAD

10

主题

57

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 16:07:57 | 显示全部楼层
不是说,当iam在“模型”选项卡中时,我希望布局选项卡具有视口锁定/解锁功能。lisp仅在iam位于“布局”选项卡中时有效。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 16:11:35 | 显示全部楼层
你好
一个例子。
  1. (defun c:vplk (/ spc)
  2. (setq spc (getvar 'ctab))
  3. (foreach lay (layoutlist)
  4.    (setvar 'ctab lay)
  5.    (vplock (ssget "_X" (list '(0 . "VIEWPORT") (cons 410 lay))) t)
  6. )
  7. (setvar 'ctab spc)
  8. (princ)
  9. )
回复

使用道具 举报

CAD

10

主题

57

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 16:13:10 | 显示全部楼层
你好Tharwat,
 
Lisp程序不起作用。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 16:17:58 | 显示全部楼层
 
它在我的Cad 2015上确实有效。
 
命令栏上有错误消息吗?
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 16:20:31 | 显示全部楼层
查看OP中的代码,问题应该只发生在没有视口的图形中。
 
要修复它,请尝试:
  1. (defun c:vplk ( / d)
  2. (if (setq d (ssget "_X" '((0 . "VIEWPORT"))))
  3.    (vplock d T)
  4. )
  5. (princ)
  6. )
回复

使用道具 举报

CAD

10

主题

57

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 16:24:09 | 显示全部楼层
两个代码均不工作错误代码
 
命令:VPLK
恢复缓存的视口-重新生成布局。
; 错误:无函数定义:VPLOCK
 
我使用的是acad2016,你还可以添加vpunlock功能吗
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 16:27:24 | 显示全部楼层
 
您需要加载该函数“VPLOCK”以及我之前发布的代码,因为我以另一种方式重新编写了该函数,您可以用与第一篇文章中发布的相同的方式将其用于两个选项。
回复

使用道具 举报

CAD

10

主题

57

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 16:30:17 | 显示全部楼层
 
是的,谢谢你,当我结合它的作品很好!!!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 20:01 , Processed in 0.549587 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表