lisp中怎樣調取圖形_CAD的lisp程序已加載,怎樣繪圖?

回答:

1.計算所有線段總長度(加載后只需框選所有線段便可得出這些線段的總長度)

(defun c:LL ()

(setvar "cmdecho" 1)

(setq en (ssget(list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))

(setq i 0)

(setq ll 0)

(repeat (sslength en)

(setq ss (ssname en i))

(setq endata (entget ss))

(command "lengthen" ss "")

(setq dd (getvar "perimeter"))

(setq ll (+ dd ll))

(setq i (1+ i))

)

(princ "所選線條總長為:")(princ ll)(princ)

)

2.標注所有線段(加載后只需框選所有線段便可得標注這些線段)

(defun c:LLL ()

(COMMAND "UCS" "")

(setvar "cmdecho" 1)

(SETVAR "OSMODE" 0)

;;選取需要測量的樣條曲線、圓弧、直線、橢圓

(setq en (ssget(list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))

(setq i 0)

;;獲取系統參數textsize

(setq shh (getvar "textsize"))

(setq str_hh (strcat "\n文字高度: "))

(setq hh (getdist str_hh))

(while hh

(setvar "textsize" hh)

(setq hh nil))

;;輸入標注文字高度

;;循環開始

(repeat (sslength en)

(setq ss (ssname en i))

(setq endata (entget ss))

(command "lengthen" ss "")

(setq dd (getvar "perimeter"))

(princ (strcat "\n長度=" (rtos dd 2)))

;;尋找代表圖層的字符串

(setq aa (assoc 0 endata))

;;獲取圖層名稱

(setq aa1 (cdr aa))

;;判斷線條種類

(cond

((= aa1 "SPLINE")

;;如果是spline

(progn

(setq arcObj (VLAX-ENAME->VLA-OBJECT ss))

(setq startPnt1 (vla-get-ControlPoints arcObj))

(setq p1

(vlax-safearray->list (vlax-variant-value startPnt1))

)

(setq x1 (car p1))

(setq y1 (CADr p1))

(setq z1 (CADdr p1))

(setq pp1 (list x1 y1 z1))

(repeat (- (/ (length p1) 3) 1)

;;循環,尋找最后一個控制點

(setq p1 (cdddr p1))

(setq x2 (car p1))

(setq y2 (CADr p1))

(setq z2 (CADdr p1))

)

(setq pp2 (list x2 y2 z2))

)

)

((= aa1 "LWPOLYLINE")

;;如果是LWPOLYLINE

(progn

(setq arcObj (VLAX-ENAME->VLA-OBJECT ss))

(setq startPnt1 (vla-get-Coordinates arcObj))

(setq p1

(vlax-safearray->list (vlax-variant-value startPnt1))

)

(setq x1 (car p1))

(setq y1 (CADr p1))

(setq z1 (CADdr p1))

(setq pp1 (list x1 y1 z1))

(repeat (- (/ (length p1) 3) 1)

;;循環,尋找最后一個控制點

(setq p1 (cdddr p1))

(setq x2 (car p1))

(setq y2 (CADr p1))

(setq z2 (CADdr p1))

)

(setq pp2 (list x2 y2 z2))

)

)

(t

;;如果是其他種類線條

(progn

(setq arcObj (VLAX-ENAME->VLA-OBJECT ss))

(setq startPnt1 (vla-get-StartPoint arcObj))

;;獲取起點

(setq endPnt1 (vla-get-EndPoint arcObj))

;;獲取終點

(setq pp1

(vlax-safearray->list (vlax-variant-value startPnt1))

)

(setq

pp2 (vlax-safearray->list (vlax-variant-value endPnt1))

)

)

)

)

(setq x1 (car pp1))

(setq y1 (CADr pp1))

(setq z1 (CADdr pp1))

(setq x2 (car pp2))

(setq y2 (CADr pp2))

(setq z2 (CADdr pp2))

(setq x (/ (+ x1 x2) 2))

(setq y (/ (+ y1 y2) 2))

(setq z (/ (+ z1 z2) 2))

(setq pt (list x y z))

;;取得線段兩端的中點

(setq ang (angle pp1 pp2))

;;獲取角度

(if (> (* (/ ang pi) 180) 180)

(setq ang (+ ang pi))

)

(command "text"

"j"

"bc"

pt

""

(* (/ ang pi) 180)

(strcat "" (rtos dd 2))

""

)

(setq i (1+ i))

)

(prin1)

)

(prompt "\n <>在圖中直接寫出長度")

(prin1)

3.連續打斷程序

(defun c:br1 ()

(command "break" pause "f" pause "@")

)

4.將CAD文字導入Excel表格

(defun c:Q2()

(setq ffn (getfiled "寫出文件" "" "xls" 1))

(princ "\n選取文字...")

(setq ss (ssget))

(setq ff (open ffn "w"))

(setq i 0)

(repeat (sslength ss)

(setq ssn (ssname ss i))

(setq ssdata (entget ssn))

(setq sstyp (cdr (assoc 0 ssdata)))

(if (or (= sstyp "TEXT") (= sstyp "MTEXT"))

(progn

(setq txt (cdr (assoc 1 ssdata)))

(princ txt ff)

(princ "\n" ff)

)

)

(setq i (1+ i))

)

(close ff)

(princ (strcat "\n寫出文件: " ffn))

(prin1)

)

5刪除帶顏色圖元

以下程序在別人的貼子里貼過.為了說明問題,今天再貼一次.

改顏色的LISP程序

(defun c:c1()(ssget)(command "chprop" "p" "" "c" "1" "") (princ))

(defun c:c2()(ssget)(command "chprop" "p" "" "c" "2" "") (princ))

(defun c:c3()(ssget)(command "chprop" "p" "" "c" "3" "") (princ))

(defun c:c4()(ssget)(command "chprop" "p" "" "c" "4" "") (princ))

(defun c:c5()(ssget)(command "chprop" "p" "" "c" "5" "") (princ))

(defun c:c6()(ssget)(command "chprop" "p" "" "c" "6" "") (princ))

(defun c:c7()(ssget)(command "chprop" "p" "" "c" "7" "") (princ))

(defun c:c8()(ssget)(command "chprop" "p" "" "c" "8" "") (princ))

你用C1 命令就可以將圖元改為紅色了.其余類似.

刪除紅色圖元

(defun C:D1 (/ m A M)

(setq m:err *error* *error* *merr*)

(setvar "cmdecho" 0)

(command "UNDO" "G")

(prompt "選擇圖形")

(setq A (ssget '((62 . 1)) ))

(if (/= A nil)(progn

(setq M (sslength A))

(command "erase" A "")

(princ "\n共刪除紅色圖元個")

))

(command "UNDO" "E")

(princ))

這樣,鍵入 D1 命令,就可以刪除紅色的圖元了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397049.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397049.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397049.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java Web的web.xml文件作用及基本配置(轉)

其實web.xml就是asp.net的web.config一個道理。 說明&#xff1a; 一個web中完全可以沒有web.xml文件&#xff0c;也就是說&#xff0c;web.xml文件并不是web工程必須的。 web.xml文件是用來配置&#xff1a;歡迎頁、servlet、filter等的。當你的web工程沒用到這些時&#xff0…

stand up meeting 12/21/2015

part組員 工作 工作耗時/h明日計劃工作耗時/h UI馮曉云 完成PDF UI主頁面的頁面切換功能&#xff0c;待完善 4 完善頁面切換&#xff0c;修補彈窗bug 4foxit PDF Reader朱玉影 修改了對pdf中文本進行搜索的代碼&#xff0c;使其更加robust 4 pdf…

python快速檢測視頻跳過幀_使用Python實現跳幀截取視頻幀

本文實例為大家分享了Python跳幀截取視頻幀的具體代碼&#xff0c;供大家參考&#xff0c;具體內容如下 可以自由設定時長來截取視頻&#xff0c;經實測效果理想。期間遇到的一個麻煩是我的視頻文件在D:盤&#xff0c;在原視頻D盤目錄上不能保存截取的圖片文件&#xff0c;后改…

BZOJ3999: [TJOI2015]旅游

BZOJ3999: [TJOI2015]旅游 Description 為了提高智商&#xff0c;ZJY準備去往一個新世界去旅游。這個世界的城市布局像一棵樹。每兩座城市之間只有一條路徑可以互達。每座城市都有一種寶石&#xff0c;有一定的價格。ZJY為了賺取最高利益&#xff0c;她會選擇從A城市買入再轉手…

一張圖看懂單機/集群/熱備/磁盤陣列(RAID)

單機部署(Standalone) 只有一個飲水機提供服務器&#xff0c;服務只部署一份 集群部署(Cluster) 多個飲水機同時提供服務&#xff0c;服務冗余部署&#xff0c;每個冗余的服務都對外提供服務&#xff0c;一個服務掛掉時依然可用 熱備部署(Hot-swap) 只有一個桶提供服務&#xf…

typescript vuex_Vue3+TypeScript完整項目上手教程

作者&#xff1a;TinssonTaihttps://juejin.im/post/6875713523968802829一個完整的Vue3Ts項目,支持.vue和.tsx寫法 項目地址&#xff1a;https://github.com/vincentzyc/vue3-demo.gitTypeScript 是JS的一個超集&#xff0c;主要提供了類型系統和對ES6的支持&#xff0c;使用 …

JS中window.showModalDialog()詳解

window.showModalDialog()方法用來創建一個顯示HTML內容的模態對話框。 window.showModelessDialog()方法用來創建一個顯示HTML內容的非模態對話框。 使用方法&#xff1a; vReturnValue window.showModalDialog(sURL [, vArguments] [,sFeatures]) vReturnValue window.show…

一個簡單的javascript節流器實現

節流器 javascript的節流器主要用于延緩某些動作的執行&#xff0c;比如ajax請求&#xff0c;如果input框注冊了input事件&#xff0c;那么當用戶輸入時就會持續的觸發這個事件&#xff0c;如果回調函數中持續的通過ajax調用后臺的接口&#xff0c;就會對服務器產生一定壓力。這…

一些會用到的知識

為什么80%的碼農都做不了架構師&#xff1f;>>> HtmlAgilityPack 用來解析HTML代碼 microsoft.mshtml CsQuery 解析HTML代碼 轉載于:https://my.oschina.net/uwith/blog/813725

eclipse怎么升級到java ee,如何為Java EE開發人員升級Eclipse?

Is there any non-painful way to upgrade an Eclipse installation? I have tried browsing the eclipse site but I cannot find an useful description.解決方案Add the update URL to your available sites:Window > Preferences > Install/Update > Available S…

LeetCode 7 Reverse Integer(反轉數字)

題目來源&#xff1a;https://leetcode.com/problems/reverse-integer/ Reverse digits of an integer. Example1: x 123, return 321Example2: x -123, return -321 解題思路&#xff1a; 其實這道題看起來非常簡單&#xff0c;要實現也是幾行代碼的事。但是有個小問題容易被…

各種蘊含算法思想的DP - 3

內容中包含 base64string 圖片造成字符過多&#xff0c;拒絕顯示轉載于:https://www.cnblogs.com/cmyg/p/9566723.html

python圖像對比_用python實現對比兩張圖片的不同

from PIL import Image from PIL import ImageChops def compare_images(path_one, path_two, diff_save_location): """ 比較圖片&#xff0c;如果有不同則生成展示不同的圖片 參數一: path_one: 第一張圖片的路徑 參數二: path_two: 第二張圖片的路徑 參數三:…

Kafka 分布式環境搭建

這篇文章將介紹如何搭建kafka環境&#xff0c;我們會從單機版開始&#xff0c;然后逐漸往分布式擴展。單機版的搭建官網上就有&#xff0c;比較容易實現&#xff0c;這里我就簡單介紹下即可&#xff0c;而分布式的搭建官網卻沒有描述&#xff0c;我們最終的目的還是用分布式來解…

Docker Machine搭建并加入節點

對于集群服務器來講&#xff0c;要在每臺機器上手動安裝Docker是一件及其痛苦的事情&#xff0c;還好有Docker Machine這一工具&#xff0c;Docker三劍客中的一角. 一、Docker Machine介紹 這個工具已經出了比較久了&#xff0c;Docker Machine官方介紹&#xff1a;https://doc…

ASPNET5的依賴注入

ASP.NET5設計的時候就是以DI為基礎的&#xff0c;它可以利用內建的框架在Startup類的方法中&#xff0c;把依賴注入進去。應用服務也可以被配置的注入。默認的服務容器提供一些基本的功能&#xff0c;它并不打算代替現代主流的DI框架。 1. 什么是Dependency Injection? DI的概…

java 權限控制 demo_Java-訪問控制權限

Java面向對象-訪問控制權限Java中&#xff0c;可以通過一些Java關鍵字&#xff0c;來設置訪問控制權限&#xff1b;主要有 private(私有)&#xff0c; package(包訪問權限)&#xff0c;protected(子類訪問權限)&#xff0c;public(公共訪問權限)privatepackageprotectedpublic同…

《未來世界的幸存者》筆記

https://ruanyf.github.io/survivor/ 這兩天一直在上下班途中&#xff0c;讀阮一峰的這本書 《未來世界的幸存者》。還是有不少感慨的。做一下記錄。 未來人類社會的形態&#xff0c;將發生顛覆性的變化。舊的社會結構已經在崩潰了&#xff0c;但社會底層的機會變得更少了&…

python類中沒有屬性_如何在python語言中在類中刪除屬性和添加屬性

在python語言中的類&#xff0c;可以使用class定義類&#xff0c;調用__init__方法進行初始化&#xff1b;默認傳入self&#xff0c;可以在后面在添加幾個屬性。可以使用setattr()添加屬性&#xff0c;也可以使用delattr()刪除屬性。下面利用幾個實例說明這兩個方法的用法&…

mysql 數據復制停止工作_linux – Mysql GTID復制停止工作

我在主服務器和從服務器之間設置了mysql gtid復制.有趣的是,我發現復制在幾分鐘后停止工作,我必須使用stop slave并啟動slave來重啟mysql復制.誰能告訴我是什么原因導致這個問題&#xff1f;改變奴隸主&#xff1a;mysql> change master to-> master_host master.com,-&…