The Hurricane Forum
The Hurricane Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 AutoCAD
 Lisp & Other Handy Files
 Help - Custom LISP or script required

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert EmailInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

   Attach a File

Check here to subscribe to this topic.
   

T O P I C    R E V I E W
ktumack Posted - November 09 2005 : 12:26:02 PM
Is there anyone out there that can help me develop a LISP or script that removes all intelligent aspects of a AutoCAD2005 drawing. These AutoCAD files are provided to clients as there electronic version of thier documentation rather then getting PDF's.

Task's this program would need to do:
1.) erase all nodes
2.) burst all blocks to their basic elements, and yet retain there layer name, color and line type.
3.) move all objects to layer 0, object property for the linetype is
retained (if object line is bylayer, and the layer is set to hidden then the line must be forced to hidden line type, etc.)
4.) color of all objects changed to bylayer.
5.) all dim's exploded.
6.) blocks with visible attributes converted to text.
7.) blocks with invisible attributes deleted.
8.) dwg purged of all layers, linetypes, styles.
9.) could be command prompt executed or dialog box controled.

The final dwg must look just like the original except with no AutoCAD intelligence and every object on the layer "0" with forced linetypes, bylayer color setting so all objects are the same color. The dwg would look just like a plotted dwg with black lines on a white paper.


Thanks.........Ken
5   L A T E S T    R E P L I E S    (Newest First)
Admin Posted - November 10 2005 : 4:39:47 PM
I see...

In that case, I can recommend a little lisp calld SSX, and with it, you can have it select all entities that match certain criteria.
http://www.74mph.com/forum/topic.asp?TOPIC_ID=51&SearchTerms=ssx
http://www.74mph.com/forum/topic.asp?TOPIC_ID=82&SearchTerms=ssx
It may take a little playing with, to get used to, but basically you run it, and tell it what to select, as it generates a selection set. Then the command is exited.

Then you perform a command to CHANGE, and when asked to "select objects:" then enter "P" (for PREVIOUS selection set), then enter P for Properties, and then type LT for LineType, and enter BYLAYER.

In the example below, I am filtering using SSX to select items with LineType "BORDER" and change them to "BYLAYER".

Something like this...
;BEGIN SCRIPT
(LOAD "D:/PROGRAM FILES/AUTOCAD/SUPPORT/SSX.LSP") <-Make sure SSX.LSP is loaded
;Command: SSX
SSX
;Select object/<None>:

;>>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: LT
LT
;>>Linetype name to add/<RETURN to remove>: BORDER
BORDER
;Filter: ((6 . "BORDER"))
;((6 . "BORDER"))
;>>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:

;Command: CHANGE
CHANGE
;Select objects: P
P
;Select objects:

;Specify change point or [Properties]: P
P
;Enter property to change [Color/Elev/LAyer/LType/ltScale/LWeight/Thickness]: LT
LT
;Enter new linetype name <BORDER>: BYLAYER
BYLAYER
;Enter property to change [Color/Elev/LAyer/LType/ltScale/LWeight/Thickness]:

;END SCRIPT


I hope this gets you closer!

Regards,
Bill
ktumack Posted - November 10 2005 : 12:22:26 PM
Thanks Admin,

But I need to go in the opposite way.
I need to find a line types prop. either forced or bylayer and change it to a forced line type.
Admin Posted - November 09 2005 : 7:49:04 PM
Hi ktumack,

I think the best way would be to use the CHANGE command.

Here is an example script... providing you have linetype called HIDDEN and you want to change it to BYLAYER for ALL entities.
(I've just used Hurricanes Command Capture Utility found under Tools->Utilities)

;BEGIN SCRIPT
;Command: CHANGE
CHANGE
;Select objects: ALL
ALL
;Select objects:

;Specify change point or [Properties]: P
P
;Enter property to change [Color/Elev/LAyer/LType/ltScale/LWeight/Thickness]: LT
LT
;Enter new linetype name <varies>: BYLAYER
BYLAYER
;Enter property to change [Color/Elev/LAyer/LType/ltScale/LWeight/Thickness]:

;END SCRIPT


You could use the CHANGE command to do all sorts of things... (including move everything to layer 0)

I hope this helps!!

Regards,
Bill
ktumack Posted - November 09 2005 : 1:05:39 PM
Thanks, But how would I force all linetypes from bylayer to layer type before moving all objects to layer "0"

Ken
Admin Posted - November 09 2005 : 12:49:51 PM
Hi ktumack,

I think the BURST lisp will get you halfway there, then follow it up with a FLATTEN.


; start of script
burst
all

;end of script


http://www.74mph.com/forum/topic.asp?TOPIC_ID=42&SearchTerms=flatten
(script depends on the one you use)

You can move them all to layer 0

; start of script
; MOVE EVERYTHING TO LAYER '0'
CHANGE
; SELECT ENTITIES
ALL

; SELECT PROPERTIES
P
; [Color/Elev/LAyer/LType/
; ltScale/LWeight/Thickness]
LA
;LAYER NAME
0

;end of script


Repeat for Color...

Perform a purge... no problem

;START OF SCRIPT
;PURGE ALL UNUSED
_PURGE
_A
*
_N
;END OF SCRIPT


Let me know if this gets you close to what you need. I'm sure it can be done in a couple more simple steps...

Of course the method described would be all put together in Hurricane, as putting this into a Dialog Box would restrict its "batchability"... (if that is even a word?! )

Regards,
Bill



The Hurricane Forum © 2009 - 2021 Go To Top Of Page
This page was generated in 0.14 seconds. Snitz Forums 2000