试试这个:
(setq dcl_id (load_dialog "C:\\Program Files\\AutoCAD 2010\\Support\\slope.dcl"))
好啊谢谢,(setq dcl\u id(load\u对话框“slope.dcl”)) 不客气 坡度符号的方向应与坡度一致 Lucas3,请不要错过,最初的代码是调用将对话框定义放入MyDocuments文件夹的;如果将其放置在AutoCAD的安装文件夹中,则在重新安装或切换到其他版本时可能会丢失它们。 谢谢MSasu!
维姆克鲁兹,如何调暗锥度?
维姆克鲁兹,干得好!如果您不介意,我会对您的代码发表一些评论:
在继续处理之前验证用户的输入可能很有用:
(if (and (setq p1 (getpoint "\nFirst pick point: "))
(setq p2 (getpoint "\nSecond pick point: ")))
(progn
...
请注意,您在调用绘图命令后禁用了自动OSNAP,因此可能会受到当前模式的影响:
(command "_.pline" newp1 newp2 "")
(setq osm (getvar "OSMODE"))
(setvar "osmode" 0)
一个好的编程实践是完全恢复受影响的环境,因此最好将原始的*error*函数保留到变量中,并替换您在结束或出错时定义的函数(类似于您对OSMODE系统变量所做的操作)。
如果在绘制某些实体之后发生错误,则在错误处理函数中调用UNDO命令将确保用户不会得到不完整的结果。
对于模式选择,您可能还需要查看GETKWORD和INITGET函数(以摆脱对话框)。
如果您决定坚持使用该对话框,则可以在其中添加文本高度字段;此外,通过使用单选按钮而不是模式按钮,将能够以以前使用的模式作为默认模式提示用户。
最后,但并非最不重要的是,您应该本地化您的变量,以确保不会干扰其他例程。 MSasu,thx的提示!。我试图用DCL中的radio_按钮使其工作,但我不知道如何恢复以前的选择。正如我所说,我刚开始使用Autolisp,但有了这种帮助,我会变得更好。下周我会根据你说的做些改变。如果需要,可以随时重复使用代码。
Lucas3,到本周末,我将有时间改进代码。如果你能等到那天。。。
当做
谢谢vimcruz,我会等你的!
你看过14号和16号吗 是的,我做了。这就是我这个周末要做的。
当做
页:
1
[2]