乐筑天下

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

[编程交流] 如何从差异中获取值

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:03:39 | 显示全部楼层
 
不客气,
 
这不是一个很难理解的LISP,只需使用它来破译我使用的DXF组码:
 
http://autodesk.com/techpubs/autocad/acad2000/dxf/
回复

使用道具 举报

29

主题

196

帖子

168

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
145
发表于 2022-7-6 12:08:42 | 显示全部楼层
太棒了反正我自己也解决不了。。将DXF与tablesearch和wcmatch相结合。。。这离我的可能性太远了。。。我会花一整天的时间去抓它。。。在对lisp进行300次测试之后。。。
:s
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:10:00 | 显示全部楼层
 
这一切都只是DXF的知识真的,有很多方法可以做到这一点-我只是想简明扼要眨眼:
回复

使用道具 举报

2

主题

74

帖子

72

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:15:26 | 显示全部楼层
是的,一切都很好。
但我从未使用过这个变量,当然我在帮助中找到了它的指定,但为了尝试,它没有被证明,我的AutoCAD拒绝了它的任何新值,尽管是在手动中,尽管是通过李的Lisp。使用Mleader不起作用:(
回复

使用道具 举报

29

主题

196

帖子

168

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
145
发表于 2022-7-6 12:17:58 | 显示全部楼层
还有两件事。。。我尝试了几种方法在末尾添加一条简单的消息
 
strcat Dimscale已设置为:(dmscl)
 
而且你的lisp也会被x值为负值的块卡住。。。如何获得正x值以更新dimscale?
 
我有一个密码。。。但它不适用于dxf值。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:22:30 | 显示全部楼层
  1. (defun c:MrGilsoto (/ dxf ent)
  2. (defun dxf (code ent) (cdr (assoc code (entget ent))))
  3. (cond (  (setq ent (car (entsel)))
  4.           (setvar 'DIMSCALE
  5.             (cond (  (wcmatch (dxf 0 ent) "TEXT,MTEXT") (* 8. (dxf 40 ent)))
  6.                   (  (eq "INSERT" (dxf 0 ent)) [color=Red][b](abs[/b][/color] (dxf 41 ent)[b][color=Red])[/color][/b])
  7.                   (  (wcmatch (dxf 0 ent) "DIMENSION,*LEADER")
  8.                      (cdr (assoc 40 (tblsearch "DIMSTYLE" (dxf 3 ent)))))
  9.                   (  (getvar "DIMSCALE"))))))
  10. [color=Navy][b](princ (strcat "\n<<--  Mr Gilsoto's Dimscale is: " (rtos (getvar 'DIMSCALE)) " -->>"))[/b][/color]
  11. (princ))

 
唯一的问题是,当我选择维度或引线时,会收到错误消息。。。但是我正确地更新了样式和尺寸比例。。。只是由于lisp格式的错误消息,我真的不理解。。。但是如果你(李)能纠正它。。。太好了。。。不管怎样,它现在可以工作了。
 
命令:dre
选择对象:拒绝AutoCAD变量设置:DIMSCALE nil
回复

使用道具 举报

29

主题

196

帖子

168

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
145
发表于 2022-7-6 12:23:13 | 显示全部楼层
难以置信。。。。
 
我自己做的。。。只是通过测试。。。我尝试了“(if)”并检查了括号…然后工作了…我想我正在成为一名程序员…小心!!
 
  1. ;; Updates Dimscale variable taking the value from a Text or Mtext Object multiplied by 8
  2. ;; from a Block X positive value, and from any dimension or leader Dimscale
  3. ;; Lee MacDonnell February 2010
  4. ;; [url]http://www.cadtutor.net/forum/showthread.php?t=44989[/url]
  5. (defun c:dre8 (/ dxf ent)
  6. (defun dxf (code ent) (cdr (assoc code (entget ent))))
  7. (cond (  (setq ent (car (entsel)))
  8.           (setvar 'DIMSCALE
  9.             (cond (  (wcmatch (dxf 0 ent) "TEXT,MTEXT") (* 8. (dxf 40 ent)))
  10.                   (  (eq "INSERT" (dxf 0 ent)) (abs (dxf 41 ent)))
  11.                   (  (wcmatch (dxf 0 ent) "DIMENSION,*LEADER")
  12.            [color=red]          (command "dim""restore""" ent "exit"))[/color]
  13.                   (  (getvar "DIMSCALE"))))))
  14. (princ (strcat "\n<<-- Dimscale has been set to: " (rtos (getvar 'DIMSCALE)) " -->>"))
  15. (princ))
回复

使用道具 举报

29

主题

196

帖子

168

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
145
发表于 2022-7-6 12:27:17 | 显示全部楼层
做得好
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:32:05 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 02:23 , Processed in 0.464575 second(s), 68 queries .

© 2020-2025 乐筑天下

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