当前位置:首页 » 操作系统 » lsp源码

lsp源码

发布时间: 2022-04-02 23:09:00

① 请问cad图层转换器lsp代码是什么

这个得是自己编写的呦

② CAD 快速标注LSP代码,大神帮忙整一个,感谢!

标注尺寸
autolisp代码如下:
;标注尺寸
(defun c:tes ( / ent n1 n2 obj p1 p2 p3)
(vl-load-com)
(while (setq ent (x2007101))
(setq obj (vlax-ename->vla-object ent))
(vla-getboundingbox obj 'p1 'p2)
(setq p1 (vlax-safearray->list p1) p2 (vlax-safearray->list p2) p3 (mapcar '- p2 p1) n1 (rtos (car p3) 2 2) n2 (rtos (cadr p3) 2 2))
(setq p3 (mapcar '+ '(-5 0) p1))
(entmake (list '(0 . "DIMENSION") '(100 . "AcDbEntity") '(100 . "AcDbDimension") (cons 10 p1) '(70 . 38) (cons 1 "0") '(71 . 5) '(72 . 1)
'(73 . 0) '(74 . 0) '(75 . 0) '(52 . 0.0) '(53 . 0.0) '(54 . 0.0) '(51 . 0.0)
'(100 . "AcDbOrdinateDimension") (cons 13 p1) (cons 14 p3)))
(setq p3 (mapcar '+ '(0 -5) p1))
(entmake (list '(0 . "DIMENSION") '(100 . "AcDbEntity") '(100 . "AcDbDimension") (cons 10 p1) '(70 . 102) (cons 1 "0") '(71 . 5) '(72 . 1)
'(73 . 0) '(74 . 0) '(75 . 0) '(52 . 0.0) '(53 . 0.0) '(54 . 0.0) '(51 . 0.0)
'(100 . "AcDbOrdinateDimension") (cons 13 p1) (cons 14 p3)))
(setq p3 (mapcar '+ '(5 0) p2))
(entmake (list '(0 . "DIMENSION") '(100 . "AcDbEntity") '(100 . "AcDbDimension") (cons 10 p1) '(70 . 38) (cons 1 n1) '(71 . 5) '(72 . 1)
'(73 . 0) '(74 . 0) '(75 . 0) '(52 . 0.0) '(53 . 0.0) '(54 . 0.0) '(51 . 0.0)
'(100 . "AcDbOrdinateDimension") (cons 13 p2) (cons 14 p3)))
(setq p3 (mapcar '+ '(0 5) p2))
(entmake (list '(0 . "DIMENSION") '(100 . "AcDbEntity") '(100 . "AcDbDimension") (cons 10 p1) '(70 . 102) (cons 1 n2) '(71 . 5) '(72 . 1)
'(73 . 0) '(74 . 0) '(75 . 0) '(52 . 0.0) '(53 . 0.0) '(54 . 0.0) '(51 . 0.0)
'(100 . "AcDbOrdinateDimension") (cons 13 p2) (cons 14 p3)))
)
(princ)
)

(defun x2007101 ( / ent)
(if (setq ent (entsel "\n请选择零件"))
(progn
(setq ent (car ent))
(if (vl-catch-all-error-p (vl-catch-all-apply 'vlax-curve-getStartPoint (list ent)))
nil
ent
)
)
nil
)
)

③ 求autocad 自动编号的LSP代码

(defun c:bh (/ oce1 qz gg n1 zn h1 sxh1 p1)
(setq oce1 (getvar "cmdecho"))
(setvar "cmdecho" 0)
(command "style" "standard" "" 0 0.8 0 "n" "n")
(setq qz (getstring "\n请输入前缀相同的部分:(不要前缀回车) ") gg (getstring "\n请输入后缀相同的部分:(不要后缀回车) "))
(if (not (setq n1 (getint "\n请输入起始顺序号 <1>: ")))
(setq n1 1)
)
(if (not (setq zn (getint "\n请输入增加或减少的序数 <+1>: ")))
(setq zn 1)
)
(if (not (setq h1 (getreal "\n请指定文字高度 <2.5>: ")))
(setq h1 2.5)
)
(setq sxh1 (strcat qz (itoa n1) gg) p1 (getpoint "\n请指定起点: ")
)
(while (/= p1 nil)
(command "text" "tl" p1 h1 0 sxh1) ;应是左上tl 不是右上tr
(setq n1 (+ n1 zn) sxh1 (strcat qz (itoa n1) gg) p1 (getpoint p1 "\n请指定下一起点: "))
)
(setvar "cmdecho" oce1)
(princ)
)

④ 南方cass中怎样使用kg.lsp.lsp应用程序源代码

南方cass使用kg,lsp,dvb,vlx等这些外部程序需要通过加载后,才能运行的。具体方法是:打开南方cass软件,输入命令appload(加载命令)回车,会弹出如下对话框:

最后注意:每次关闭了绘图软件后再重新打开需要重新加载的。。。

⑤ CAD lsp代码怎么写这个命令,用过,但没代码,求指导

  1. 框选对象图层L1

  2. 分析每个对象的坐标包围框,代码

    (vl-load-com);加载VBA函数

    (setq obj (vlax-ename->vla-object ent)) ;obj对象

    (vla-GetBoundingBox obj '&p1 '&p2) ;得到包围框

    (setq &p1 (vlax-safearray->list &p1));得到右下角坐标

    (setq &p2 (vlax-safearray->list &p2));得到左上角坐标

  3. 建立右下角点坐标集合ss,元素由点与对象构成(list &p1 &p2 ent)

    (setq ss(vl-sort ss (function (lambda (x y) (< (caar x) (caar y))))));;X从小到大排序

  4. 提取SS里面的对象提取多段线坐标

    (setq ss1(mapcar 'cdr (vl-remove-if '(lambda (X) (/= 10 (car x))) (entget ent))))

    (setq &kw1 (ssget "wp" ss1));提取这个范围的对象,然后移动对象到你需要的地方

    或(setq &kw1 (ssget "w" &p1 &p2));这样选择对象也可以

    移动对象&kw1按距离来移动。

  5. 左下角的坐标可以这样得到取得

    (setq x1 (car &p2))

    (setq y1 (cadr &p1))

    (setq &p3 (list x1 y1));左下角坐标

  6. 你的代码主要是没有包围框代码有了代码就可以方便的写出你的程序了。

⑥ lisp编程:怎么编译lisp源代码呢

lisp程序不需要编译,直接在autocad中加载就可以了,然后执行定义的命令就行。

⑦ 怎样批量修改多个CAD图中的点样式LSP源代码怎样批量修改多个CAD图指定层(如JZD层)的文字颜色为白色

1. 创建CHSCR命令文件
CH.SCR文件的内容是由AutoCAD的命令和响应序列所组成的ASCⅡ文件,是可在AotuCAD编辑状态下执行的文本文件。
CH.SCR包含了可在指定图形中自动重复执行命令序列。
例:把图形文件C800-01~ C800-98中的图纸编号2066DD3改变2087DD2。高层代号C13改为D24,设备型号DZ20改为C45AD。
在DOS状态下用文本编辑软件建立CH.SCR文件:
CHTEXT_all _ _2066DD3
2087DD2
CHTEXT_all _ _C13
D24〈Enter〉
CHTEXT _all _ _DZ20
C45AD〈Enter〉
PLOT〈Enter〉
〈Enter〉
〈Enter〉
其中:
_代表一个空格
〈Enter〉代表回车
CHTEXT修改图中文字的LISP程序
•AotoCAD中文字修改功能较弱,AutoCADR12.0中曾加了DDEDIT修改文字命令,但只能用鼠标器手工修改,且一次只能改一个字符串不适用程序化操作。
因此,在编写SCR命令文件时我们采用了修改图中文字的LISP程序CHTEXT.LSP(其清单附后)。将其装入ACAD.LSP后,只要键入CHTEXT,就可按汉字提示使用,它一次可以修改多个字符串。
•当编写命令文件时,必须考虑每条AutoCAD命令中的所有响应和提示。命令文件中的每个空格都是有意义的,因为AotuCAD将它看作回车,所以不能随意增减。
•如果不需要输出PLT绘图文件,PLOT后面四行可以不要。
•CHSCR有两个作用:
①如果需要修改的图形文件较少,可以在ACAD中通过SCRLPT命令直接调用CH.SCR。
②可以在ACAD中通过SCRIPT命令试运行一次,看是否有错。
在ACAD命令状态下,键入以下命令即可按CH.SCR文件要求,对当前图形完成所需的修改。
Command:script
Script file:ch
当所涉及的图形文件较多时(十几个以上),采用手动操作,将每一图形文件调出来,逐一修改,效率太低。因此建议采用以下步骤,使计算机按命令自动批量修改图形文件。
2. 建立图形文件表FILE.TAB
创建完CH.SCR后,下一步应把需要修改图形文件名(.DWG)存入FILE.TAB中:
例如:
C800-01
C800-02
C800-03
C800-98
3. 编译生成CHGE.SCR文件
当具备CH.SCR(试运行正常后)和FILE.TAB文件后,就可以进行编译工作,在DOS状态下键入CHSCR〈Enter〉即开始编译,若编译出现问题,系统会给出相应的提示,编译完成后,你会发现目录中多了一个CHGE.SCR文件(自动修改图形的文本文件)。
•CHSCR.EXE:其功能是配制SCR文件格式的命令字符串并调入相关的绘图参数(源程序用C语言编写,清单附后)。
•当ACAD输出PLT文件时,如果发现有对应图形的PLT文件,将提示出是否覆盖掉它,这将引起SCRIPT命令中断运行。为此在CHSCR.EXE中,我们是这么处理的:当程序发现有相应图形的PLT文件,将自动把它删除掉,并在屏幕上显示出对应的信息。
经CHSCR.EXE所生成的CHGE.SCR文件:
open y C800-01
CHTEXT all 2066DD3
2087DD2
CHTEXT all C13
D24
CHTEXT all DZ20
C45AD
PLOT

save
open y C900-98
CHTEXT all 2066DD3
2087DD2
CHTEXT all C13
D24
CHTEXT all DZ20
C45AD
PLOT

save
quit y
4. 执行SCRIPT命令
①在ACAD中通过SCRIPT命令直接调用CHGE.SCR:
Command:script chge
②启动AutoCAD时从操作系统提示符处输入以下正文:
C:acad script chge
三、程序的安装
1. 将CHTEXT.LSP装入ACAD.LSP中。
2. 用通用C++编译器将CHSCR.C编译成可执行程序CHSCR.EXE,将其拷贝到CAD可找到的目录下。
程序CHSCR.EXE适用于AutoCAD R11.0、R12.0。

热点内容
服务器闪存可以装在一般电脑上吗 发布:2024-11-15 08:36:46 浏览:7
安卓手机怎么查询自己的路线轨迹 发布:2024-11-15 08:32:19 浏览:968
phpdatet 发布:2024-11-15 08:32:17 浏览:506
HDB3编译码实验 发布:2024-11-15 08:17:31 浏览:211
怪星球编程 发布:2024-11-15 08:15:55 浏览:843
慧编程价格 发布:2024-11-15 08:14:09 浏览:458
python多行注释的快捷键 发布:2024-11-15 08:09:14 浏览:956
c1脚本病毒 发布:2024-11-15 07:59:04 浏览:611
为什么淘宝上的阿里云服务器便宜 发布:2024-11-15 07:58:49 浏览:547
数据库怎么找 发布:2024-11-15 07:58:47 浏览:176