乐筑天下

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

[编程交流] 找不到dia的定义

[复制链接]

26

主题

81

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 15:15:53 | 显示全部楼层 |阅读模式
有人能帮我解决这个问题吗?
我在Autocad搜索路径中有lisp文件和dcl文件。我在同一个文件夹中有许多其他lisp和dcl文件,它们都很好用。
这个很顽固。我就是想不出来。
lisp文件称为“weld1.lsp”,dcl文件称为“Welds1.dcl”
 
  1. weld1 : dialog {
  2.      label = "WELD NOTES 1 " ;
  3.      : row {
  4.      label = "WELD SIZE";
  5.      : row {                    
  6.          : edit_box {
  7.            key = "dws";
  8.            label = "WELD SIZE";
  9.            edit_width = 6;
  10.            alignment = left ;                     
  11.          }
  12.      }
  13.     }
  14. ok_cancel ;      
  15. }
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 15:27:50 | 显示全部楼层
你好
 
在AutoCAD的命令行中复制以下内容,并告诉我返回的结果。
  1. (findfile "Welds1.dcl")
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 15:29:17 | 显示全部楼层
dcl文件没有任何问题
 
 
检查lisp文件是否正在加载“Welds1.dcl”和加载对话框“weld1”。我通常将我的对话框与dcl文件调用相同,否则很容易出错,似乎什么也没有发生。如果没有看到与加载和设置对话框相关的lisp代码,我无法诊断代码是否有问题。我总是使用以下命令
其中dcl\U名称是*。dcl文件
回复

使用道具 举报

26

主题

81

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 15:33:59 | 显示全部楼层
  1. Command: (findfile "Welds1.dcl")
  2. "C:\\Users\\ynotsbbig\\#advance\\delta tools\\Welds1.dcl"

这是lisp:
  1. (defun C:weld1 (d1 ddiag dcl_id p1)      
  2.   (defun setVars()
  3.      (setq d1 (distof (get_tile "dws"))))           
  4.      (setq dcl_id (load_dialog "Welds1.dcl"))
  5.   (if (not (new_dialog "Welds1" dcl_id))
  6.      (exit)
  7.   )      
  8.      (action_tile "accept" " (setVars)(done_dialog 1)")
  9.      (action_tile "cancel" "(done_dialog 0)")  
  10.      (setq ddiag (start_dialog))
  11.   (if (= ddiag 1)
  12.        (setq p1 (getpoint "\nPick a point "))     
  13.        (command "_line" p1 (polar p1 (deltadtr 0) dws))
  14.   )         
  15.     (unload_dialog dcl_id)
  16. (princ)
  17. )
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:41:55 | 显示全部楼层
  1. (new_dialog [color=red][b]"Welds1"[/b][/color] dcl_id)
->
  1. (new_dialog [color=red][b]"weld1"[/b][/color] dcl_id)

 
 
deltadtr->defun?
 
 
极函数中的dws是d1?
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 15:49:57 | 显示全部楼层
根据rlx或
 
 
  1. [color=red]Welds1[/color] : dialog {
  2.       label = "WELD NOTES 1 " ;
  3.      : row {
  4.      label = "WELD SIZE";
  5.      : row {                    
  6.          : edit_box {
  7.            key = "dws";
  8.            label = "WELD SIZE";
  9.            edit_width = 6;
  10.            alignment = left ;                     
  11.          }
  12.      }
  13.     }
  14. ok_cancel ;      
  15. }
回复

使用道具 举报

26

主题

81

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 15:54:55 | 显示全部楼层
我现在将lisp和dcl文件重命名为“weld1”
我还在挣扎。
 
这是lisp:
  1. (defun C:weld1 (d1 ddiag dcl_id p1)      
  2.   (defun setVars()
  3.      (setq d1 (distof (get_tile "dws"))))           
  4.      (setq dcl_id (load_dialog "weld1.dcl"))
  5.   (if (not (new_dialog "weld1" dcl_id))
  6.      (exit)
  7.   )      
  8.      (action_tile "accept" " (setVars)(done_dialog 1)")
  9.      (action_tile "cancel" "(done_dialog 0)")  
  10.      (setq ddiag (start_dialog))
  11.   (if (= ddiag 1)
  12.        (setq p1 (getpoint "\nPick a point "))     
  13.        (command "_line" p1 (polar p1 (deltadtr 0) d1))
  14.   )         
  15.     (unload_dialog dcl_id)
  16. (princ)
  17. )

 
这是dcl:
  1. weld1 : dialog {
  2.      label = "WELD NOTES 1 " ;
  3.      : row {
  4.      label = "WELD SIZE";
  5.      : row {                    
  6.          : edit_box {
  7.            key = "dws";
  8.            label = "WELD SIZE";
  9.            edit_width = 6;
  10.            alignment = left ;                     
  11.          }
  12.      }
  13.     }
  14. ok_cancel ;      
  15. }
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:59:10 | 显示全部楼层
  1. (defun C:weld1 ( / dcl-fn dcl-fp dcl-id ddiag d1 p1)
  2. (mk_dia)
  3. (if (and (setq dcl-id (load_dialog dcl-fn)) (new_dialog "weld1" dcl-id))
  4.    (progn
  5.      (vl-file-delete dcl-fn)
  6.      (action_tile "accept" "(setq d1 (distof (get_tile "dws")))(done_dialog 1)")
  7.      (action_tile "cancel" "(done_dialog 0)")
  8.      (setq ddiag (start_dialog))
  9.      (unload_dialog dcl-id)
  10.      (cond
  11. ((= ddiag 1)
  12. (setq p1 (getpoint "\nPick a point "))
  13. (command "_line" p1 (polar p1 (deltadtr 0) d1))); deltadtr = ? , dws = d1?
  14.      )
  15.    )
  16. )
  17. (princ)
  18. )
  19. (defun deltadtr (i) (if i i 0))
  20. (defun mk_dia ()
  21. (if (and (setq dcl-fn (vl-filename-mktemp ".dcl")) (setq dcl-fp (open dcl-fn "w")))
  22.    (mapcar '(lambda (x)(write-line x dcl-fp))
  23.     '("weld1:dialog{label="WELD NOTES 1";:row{label="WELD SIZE";:row {"
  24.       ":edit_box{key="dws";label="WELD SIZE";edit_width=6;alignment=left;}}}ok_cancel;}")))
  25. (if dcl-fp (close dcl-fp))(gc)
  26. )
  27. ;(C:weld1)
回复

使用道具 举报

26

主题

81

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 16:06:36 | 显示全部楼层
谢谢RLX。
很明显,在lisp上,你比我聪明得多。你送我的那个真的很好用。
这么说来,有没有可能看看我更简单的版本,因为我写了很多其他dcl和LISP,它们的风格都差不多。
我能理解我的风格,因为我熟悉它。
顺便说一句,“deltadtr”是一个局部lisp,我用它表示度到弧度。它工作得很好。
 
谢谢
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:15:42 | 显示全部楼层
 
 
  1. (defun c:weld1 ( /  ddiag dcl_id p1 d1)      
  2. (defun deltadtr (a) (* pi (/ a 180.0)))
  3. (setq dcl_id (load_dialog (findfile "weld1.dcl")))
  4. (if (not (new_dialog "weld1" dcl_id))(exit))
  5. (action_tile "dws" "(setq d1 (distof (get_tile "dws")))")
  6. (action_tile "accept" "(done_dialog 1)")
  7. (action_tile "cancel" "(done_dialog 0)")  
  8. (setq ddiag (start_dialog))
  9. (unload_dialog dcl_id)
  10. (if (= ddiag 1)
  11.    (progn
  12.      (setq p1 (getpoint "\nPick a point "))
  13.      (command-s "_line" p1 (polar p1 (deltadtr 0) d1))
  14.    )
  15. )
  16. (princ)
  17. )

 
 
思考command-s是否可以(应该)实现技巧和操作
  1. 12
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:04 , Processed in 1.306193 second(s), 73 queries .

© 2020-2025 乐筑天下

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