cad二次开发用什么语言(cad二次开发,用lisp语言,image里面没有图像图形)

本文目录
- cad二次开发,用lisp语言,image里面没有图像图形
- CADCAD二次开发可不可以用易语言来做呢
- 有哪位好心人有cad二次开发的实例,用vb货c语言编的都可以,不用太复杂简单点的就可以,希望好心人能帮忙
- 谁懂CAD的二次开发,lsp格式加载程序,是用过什么语言编写的请大神赐教
- AUTO CAD 得二次开发语言及工具
cad二次开发,用lisp语言,image里面没有图像图形
问题出在load_dialog处,我已经修改好了。
你需要把存放DCL和SLD文件的文件夹加入到搜索路径中。我都放在E:\TEST中,所以增加了下面的路径。
如果解决了问题,请务必设为【采纳回答】哦。
(defun c:dia8a ()
(setvar “cmdecho“ 0)
(dcl_dia8a)
(prin1)
)
(defun dcl_dia8a ()
(setq dcl_id (load_dialog “dia8a.dcl“))
(if (not (new_dialog “dia8a“ dcl_id)) (exit))
(new_dialog “dia8a“ dcl_id)
(sub_rb1)
(set_tile “rb1“ “1“)
(set_tile “kww“ “100“)
(set_tile “khh“ “100“)
(action_tile “rb1“ “(sub_rb1)“)
(action_tile “rb2“ “(sub_rb2)“)
(action_tile “rb3“ “(sub_rb3)“)
(action_tile “rb4“ “(sub_rb4)“)
(action_tile “accept“ “(ok_dia8a)(done_dialog 1)“)
(setq dd (start_dialog))
(if (= dd 1)
(draw_dia8a)
)
)
(defun sub_rb1 ()
(setq ddtype 1)
(show_sld “kimage“ “dia8a1“)
)
(defun sub_rb2 ()
(setq ddtype 2)
(show_sld “kimage“ “dia8a2“)
)
(defun sub_rb3 ()
(setq ddtype 3)
(show_sld “kimage“ “dia8a3“)
)
(defun sub_rb4 ()
(setq ddtype 4)
(show_sld “kimage“ “dia8a4“)
)
(defun show_sld (key sld)
(setq x (dimx_tile key))
(setq y (dimy_tile key))
(start_image key)
(fill_image 0 0 x y -2)
(slide_image 0 0 x y sld)
(end_image)
)
(defun ok_dia8a ()
(setq ww (atof (get_tile “kww“)))
(setq hh (atof (get_tile “khh“)))
)
(defun draw_dia8a ()
(setq pt1 (getpoint “左下角基准点:“))
(setq pt2 (polar pt1 0 ww))
(setq pt3 (polar pt2 (/ pi 2) hh))
(setq pt4 (polar pt3 pi (* ww 0.5)))
(setq pt5 (polar pt4 (* pi 1.5) (* hh 0.5)))
(setq pt6 (polar pt5 pi (* ww 0.5)))
(cond ((= ddtype 1) (command “pline“ pt1 pt2 pt3 pt4 pt5 pt6 “c“))
((= ddtype 2)
(command “pline“ pt6 pt1 pt2 pt3 pt4 ““)
(command “circle“ “2p“ pt4 pt6)
)
((= ddtype 3)
(command “pline“ pt1 pt2 pt3 ““)
(command “pline“ pt4 pt5 pt6 ““)
(command “circle“ “2p“ pt3 pt4)
(command “circle“ “2p“ pt6 pt1)
)
((= ddtype 4)
(command “pline“ pt1 pt2 pt3 pt4 “a“ “a“ -180 pt6 “l“ “c“)
)
)
)
CADCAD二次开发可不可以用易语言来做呢
可以,不过效率不高,我看了一下这个东西支持COM接口,而AutoCAD是支持COM自动化的,你可以像操作Excel那样来操作AutoCAD。AutoCAD的COM接口开发文档,请到管网下载ObjectArx的文档里面有
有哪位好心人有cad二次开发的实例,用vb货c语言编的都可以,不用太复杂简单点的就可以,希望好心人能帮忙
觉得还是应该写写CAD二次开发的相关一些内容,原因是最近搜网上对于这种实例原理分享的内容忒少了,毫无头绪,因此进行一个简单的分享,希望和我一样的寻求如何对CAD进行二次开发的,亦或是不知道怎么做的,可以参考一下一些拙见。
最近由于公司业务逐渐的增多,而同事与cad相关的工作,有不少是重复性工作,而软件往往就是为了减少重复性的工作,增加创新性的工作,提高工作效率,减少差错率等~~说这么一句话,在CAD基础上开发插件,解决这些问题。。。只好硬着头皮上了
个人是选择C#进行CAD的二次开发,原因使用起来相对来说容易上手,首先C#是高级语言,面向对象,本身自己从Java出身;C#还有一个优势,就是依然可以调用C++库,可以很好的托管一些现有的功能,由于自己在C#和cad的使用完全是菜鸟,因此在网上找了两本现有可以找到的书《NET_CAD深居浅出AutoCAD二次开发 C#版》
和《深入浅出cad二次开发》,废话不说了,下面说一下代码实现倒圆角的原理,由于涉及到软件著作权,就不贴代码了
首先倒圆角从命令的使用时,选中命令,然后选择两条线,在给定的半径下进行画圆弧。介于以上的命令使用方式,因此开始考虑使用C#所支持sendstringtoexecute来调用fillet命令,如
sendstringtoexecute(“._fillet \n r\n 0.7\n“);
当写到这个命令时间,必须要指定两条线才能回画出,然后进行了仿照Lisp语言的ObjectID的获取,Handle的获取,HighLight的设置调用,均无效~~彻底失望,想了一年愣是没想出来怎么才能成功的调用语言,也可能是由于自己对于二次开发的经常不足吧,可能还不熟悉正确的调用方法。
因此进行了转换角度思考,C#既然进行arx等类库的封装,那么可以理解,一些基本的常用的功能都会实现,不用进行托管c++,并且如果调用命令的话,往往比较难以控制,因此就用数学算法的形式进行代码的开发。。。
两条线 l1和l2 可以获取两线的交点p,需要画的倒圆角的半径已知r,根据CAD的方法,Point3d中可以算出此两条线的夹角,因此可以使用数学函数sin,可以求出p点和圆心点的距离,进而根据Cure中的方法可以算出圆弧的圆心o,因此可以按照圆心o和半径r做圆,这样就会和l1、l2进行相切,这时间按照同样的思路可以获得两个切点,然后根据point2d的方法,获取切点和原型o的的角度,这样就可以获得起始角度和终点角度,加上o和半径r,这样就可以画圆弧了,最后这个圆弧就是倒圆角。
这么一说是不是觉得简单了呢~~
谁懂CAD的二次开发,lsp格式加载程序,是用过什么语言编写的请大神赐教
autolisp编写的程序是以【.lsp】为后缀命名的。
此程序是源码,可以直接修改内容【如:命令】。
程序唯一要求是要【英文打字】,如果中文打字就可能会出现错误。如果要中文说明,那么在这句话前面加英文的【;】,程序才不会出现错误中断。
由于程序是源码,复制内容的时候,一定要完整。
AUTO CAD 得二次开发语言及工具
autocad的二次开发接口是arx,最简单的编写二次程序的语言是lisp,还可以用vb等编程语言也可以,你可以用lisp语言写下,加载也是很方便的,现在还有一个国产的cad浩辰cad有个grx二次开发接口,也跟autocad一样的,你可以试下

本文相关文章:
another time(another time和other time的区别)
2026年10月11日 05:00
excel trim函数(excel 怎么批量删除前面的空格、小空格、替换查不到trim之类的函数也查不到但是能手动删除的那种)
2026年8月27日 12:00
attach importance to(用attach importance to造句)
2026年8月25日 13:40
datetimepicker赋值(c# 在指定日期与现在日期之间取随机日期,并赋值给datetimepicker)
2026年8月24日 23:00
sublime text3是干嘛的(兼容包sublime text 3是什么意思)
2026年8月6日 14:30
python decimal(python decimal计算)
2026年7月28日 05:40
primer软件(如何如何使用primer primer设计引物)
2026年7月13日 20:00
更多文章:
another time(another time和other time的区别)
2026年10月11日 05:00




