乐筑天下

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

[编程交流] 帮助lisp编辑到defi

[复制链接]

3

主题

15

帖子

12

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:39:40 | 显示全部楼层 |阅读模式
大家好,我一直在努力解决这个问题,但是,嗯,我只是不太擅长lisp编辑。。。
 
我一直在使用Lee Mac非常有用的“Label”lisp,但理想情况下我想做的是修改代码,使我的标签自动写入特定层(例如“MISC_TEXT”),而不是当前层。
 
[code](defun c:label(/*error*\u StartUndo \u EndUndo \u CurveObject-p \u FixDXFData \u CopyNested \u SelectIf \u MakeReadable acdoc acspc d dient factor g1 g2 g3 gr mat msg obj p1 p2 sel str ucsnm ucsxa)(setq factor(/(getvar'textsize)(cond((getvar'cannoscalevalue))(1.0)))*关*(cond(*关*)(1.0))*每*(cond)(*per*)(/pi 2.0))*bak*(cond(*bak*)(:vlax false))(defun*error*(msg)(if(and mat ent)(entdel ent))(if(and obj(not(vlax-erased-p obj))(vla delete obj))(if acdoc(\u EndUndo acdoc))(if(not(wcmatch(strcase msg)”*BREAK,*CANCEL*,*EXIT*)(princ(strcat”\n错误:“msg))(princ))(defun _StartUndo(doc)(_EndUndo doc)(vla StartUndoMark doc))(defun _EndUndo(doc)(while(=8(logand 8(getvar‘UNDOCTL)))(vla EndUndoMark doc))(defun _CurveObject-p(ent)(null(vl-catch-all-error-p(vl catch all apply‘vlax curve getendparam(list ent)))))(defun _fixfdata(elst)(vl remove if’(lambda(pair)(member(car pair)“(5 6 8 102 330))(elst))(defun _CopyNested(ent mat/elst)(setq elst(entget ent))(cond((setq ent(cond)((eq“VERTEX”(cdr(assoc 0 elst))))(entmakex(_fixfdata(entget)(setq ent(cdr(assoc 330 elst \\k))))))(while(not(eq“sequend”(cdr(assoc 0(setq elst(entget(setq ent(entnext ent 107;)аа)а))(entmakex(_FixDXFData elst)))(cdr(assoc 330(entget(entmakex(_FixDXFData elst)а)))((entmakex(_FixDXFData elst))))(如果mat(vla transformby(vlax ename->vla object ent)(vlax tmatrix mat)))(defun _SelectIf(msg pred)((lambda(f/sel)(while(progn(setvar’ERRNO 0)(setq sel(entselp msg))(cond(=7(getvar’ERRNO))(princ“\n失败,再试一次。”)((eq‘ENAME(type(car sel)))(if(and f(null(f(car sel))))(princ“\nInvalid Object.”)))sel)(eval pred))(defun _MakeReadable(a)((lambda(a)(if(and(<(/pi 2.0)a)(
回复

使用道具 举报

3

主题

15

帖子

12

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:57:28 | 显示全部楼层
好的,我(终于)用一个宏解决了上面的问题,它改变了图层,激发了标签lisp,然后恢复到上一个图层。如果这对其他人有帮助,那就太好了
 
^粘土工;设置杂项文本^CLB\\layerp;
 
(注意,我已将lisp命令从“label”更改为“LB”)
 
如果有人能帮忙的话,还被第二个完全难住?!
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 23:23:35 | 显示全部楼层
如果你不熟悉的话,李有一个很棒的层导演lisp(我在我的创业套件中有这个),
它基本上完成了你想用图层做的事情,你可能想看看。
如果指定的层不存在,它也会创建它,然后在lisp完成后返回到上一层。
 
谢谢李!
回复

使用道具 举报

3

主题

15

帖子

12

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:38:15 | 显示全部楼层
我确实做到了,这太棒了,是的(没有他我们该怎么办?)。我将其设置为,当我编写一些新文本时,它会自动将其放入我们的通用文本层MISC\u文本中,然后我可以启动ATC lisp并将其与我的线条对齐。很 完美
 
然而,有时我们不希望文本位于MISC_文本上,而是与它相关的对象位于同一层。我只是想知道是否有可能修改代码,这样当您使用ATC将文本对齐到一行时,它也会在一次单击中采用其图层属性。我认为这将是一些需要写进Lisp程序,但它完全超越了我。并不是说比赛很艰苦,我只是觉得值得一问!
回复

使用道具 举报

3

主题

15

帖子

12

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:53:38 | 显示全部楼层
事实上,爸爸,也许你可以帮我解决图层控制器的问题。。。我试着给它添加几个Lisp程序的词,但它们不起作用。例如,我添加了“EM”-高程标记lisp(另一个Lee Mac原件)-但当我输入命令时,它仍然将其放置在当前层上,而不是我想要的“LEVELS”层上。实际上,我以前没有尝试使用它来控制LISP,只使用原生autocad命令,我做错了什么吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:36 , Processed in 0.374889 second(s), 62 queries .

© 2020-2025 乐筑天下

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