乐筑天下

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

[编程交流] 学习DCL

[复制链接]

22

主题

55

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
110
发表于 2022-7-5 23:27:05 | 显示全部楼层 |阅读模式
我刚刚开始学习DCL。很酷。但我被卡住了。当用户输入他们的新选择时,我似乎无法通过公式重新计算我的平铺值。我可能只是把东西的顺序弄错了。
 
LISP如下:
 
  1. (defun C:testdcl (/ lu lp)
  2. (setq lu (getvar "LUNITS"))
  3. (setq lp  (getvar "LUPREC"))
  4. (setq dcl_id (load_dialog "ConcTO.dcl"))
  5. (if (not (new_dialog "ConcTO" dcl_id))
  6.    (exit)
  7. );if
  8. ;------------------- set up dialogue box default settings ----------------------
  9.    (if (not b_depth)
  10.        (setq b_depth "18.0")
  11.    );end if
  12.    (if (not s_thick)
  13.        (setq s_thick "6.0")
  14.    );end if
  15.    
  16. ;------------------- set dialogue box default values ----------------------
  17.    (set_tile "beam_depth" b_depth)
  18.    (set_tile "slab_thick" s_thick)
  19.    (set_tile "beam_area" (rtos (/ fBeamArea 144.0) 2 lp))
  20.    (set_tile "slab_area" (rtos (/ fSlabArea 144.0) 2 lp))
  21.    (setq tBeamDepth (get_tile "beam_depth"))
  22.    (setq BeamDepth (atoi tBeamDepth))
  23.    (setq tSlabThick (get_tile "slab_thick"))
  24.    (setq SlabThick (atoi tSlabThick))
  25.    
  26.    (set_tile "beam_volume" (rtos (setq BeamVolume (/ (* fBeamArea BeamDepth) 1728.0 27.0)) 2 lp))
  27.    (set_tile "slab_volume" (rtos (setq SlabVolume (/ (* fSlabArea SlabThick) 1728.0 27.0) 2 lp)))
  28. ;------------------- retrieve dialogue box values ----------------------
  29.    (action_tile "beam_depth" "(setq beam_depth $value)")
  30.    (action_tile "s_thick" "(setq slab_thick $value)")
  31.    (action_tile "beam_area" "(setq beam_area $value)")
  32.    (action_tile "beam volume" "(setq beam_volume $value)")
  33.    (action_tile "s_area" "(setq slab_area $value)")
  34.    (action_tile "slab volume" "(setq slab_vol $value)")
  35.    
  36.    (action_tile "ok" "(done_dialog 1)")
  37.    (action_tile "cancel"  "(done_dialog 0)")
  38. (start_dialog)
  39. (unload_dialog dcl_id)
  40. (princ)
  41. );defun
DCL以下:
任何帮助都将不胜感激。
谢谢
迈克在达拉斯
回复

使用道具 举报

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 23:46:05 | 显示全部楼层
如果您希望在用户输入数据时更新内容,则需要在“action\u tile”中对更新的值执行另一个“set\u tile”。
 
此外,“action\u tile”返回的所有值都作为字符串返回,在对其执行任何数学运算之前,必须将其转换为整数或实数。
 
实例
 
(action\u tile“test”“(setq testval(atoi($value))newval(*testval 2))(set\u tile“newval”(itoa testval)))
 
还要注意,action\u互动程序主体中所需的任何引号“必须以\”开头。
回复

使用道具 举报

15

主题

243

帖子

228

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-5 23:54:38 | 显示全部楼层
 
除了第一个论点?对于许多人(包括我自己)来说,这是一个不确定的领域,而不是试图挑剔。
回复

使用道具 举报

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 00:14:33 | 显示全部楼层
对不起,我花了这么长时间才回来。下面是一个DCL简单计算器,我从一开始就由pBe创建并发布http://www.cadtutor.net/forum/showthread.php?67490-使用dcl amp lisp&p=463910&viewfull=1#post463910的计算器
 
,我相信pBe不会对我借的零件有任何问题。
 
对于任何想成为DCL程序员的人来说,这都是一个很好的学习工具,因为其中包含了相当多的DCL工作原理示例。
 
随便玩吧,我尽量让它简单易懂,以免吓跑任何人。
 
该LSP中有一个内置的自解压DCL文件,因此不需要额外的DCL。
简单的计算器。lsp
回复

使用道具 举报

22

主题

55

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
110
发表于 2022-7-6 00:23:54 | 显示全部楼层
非常感谢你的帮助斯诺努特。这正是我一直在寻找学习DCL的方法。
回复

使用道具 举报

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 00:28:25 | 显示全部楼层
spiker7721我希望它能像一个我再也找不到的类似程序一样帮助你。如果你有任何问题,请告诉我。
 
布鲁斯
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:29 , Processed in 0.409140 second(s), 64 queries .

© 2020-2025 乐筑天下

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